#!/bin/sh

# Source function library
. /etc/rc.d/init.d/functions

GLITE_LOCATION=${GLITE_LOCATION:-/opt/glite}
GLITE_LOCATION_VAR=${GLITE_LOCATION_VAR:-${GLITE_LOCATION}/var}

[ -f $GLITE_LOCATION/etc/baparser.conf ] && . $GLITE_LOCATION/etc/baparser.conf

pidfile=$GLITE_LOCATION_VAR/glite-baparser.pid

GLITE_CE_BAPARSER=${GLITE_LOCATION}/bin/BAParser

start()
{
	[ -n "$GLITE_CE_BAPARSER_DAEMON" ] && GLITE_CE_BAPARSER_CMDLINE=`echo $GLITE_CE_BAPARSER_CMDLINE -D`
	[ -n "$GLITE_CE_BAPARSER_DEBUG" ]  && GLITE_CE_BAPARSER_CMDLINE=`echo $GLITE_CE_BAPARSER_CMDLINE -d`
	[ -n "$GLITE_CE_BAPARSER_DGASSPOOLDIR" ]  && GLITE_CE_BAPARSER_CMDLINE=`echo $GLITE_CE_BAPARSER_CMDLINE -s $GLITE_CE_BAPARSER_DGASSPOOLDIR`
	[ -n "$GLITE_CE_BAPARSER_PORT" ]  && GLITE_CE_BAPARSER_CMDLINE=`echo $GLITE_CE_BAPARSER_CMDLINE -p $GLITE_CE_BAPARSER_PORT`
	
	$GLITE_CE_BAPARSER $GLITE_CE_BAPARSER_FLAG
        [ "$?" -eq 0 ] && success $"startup" || failure $" startup" 
        
	echo

	echo `pidofproc ${GLITE_CE_BAPARSER}` > $pidfile 
}

stop()
{
	if [ -f $pidfile ]; then
		pid=`cat $pidfile`
		kill $pid
		[ "$?" -eq 0 ] && success $"${GLITE_CE_BAPARSER} shutdown" || failure $"${GLITE_CE_BAPARSER} shutdown" 
                echo ""
		rm -f $pidfile
	else
		echo $pidfile does not exist - ${GLITE_CE_BAPARSER} not running? >&2
		return 1
	fi
}

status()
{
	if [ -f $pidfile ]; then
		pid=`cat $pidfile`
		if ps p $pid >/dev/null 2>&1; then
			echo ${GLITE_CE_BAPARSER} running as $pid 
			return 0
		fi
	fi

	echo ${GLITE_CE_BAPARSER} not running
	return 1
}

case x$1 in
	xstart)	start;;
	xstop)	stop;;
	xrestart) stop; start;;
	xstatus) status;;
	x*)	echo usage: $0 start,stop,restart,status >&2
		exit 1;;
esac
