#!/bin/sh
# $Id$

# chkconfig: 2345  85 15
# description: advocate server
SYSTEMCTL_SKIP_REDIRECT=Y
. /etc/init.d/functions

RTM_TOP="/opt/IBM"
RETVAL=0
prog='advocate'
user='advocate'
group='advocate'
default_port='8089'
rootstart='Y'

start() {
    echo -n "Starting $prog: "

    pid=`ps -ef | grep command_advocate | grep -v  'grep'| awk '{print $2}'`
#   port=`mysql -BN cacti -h localhost -P 3306 -u cacti --password=admin -e "select value from settings where name='advocate_port'"`
    if [ "$port" == "" ]; then
        port=$default_port
    fi

    if [ "$pid" == "" ]; then
        if [ "$rootstart" == "Y" ]; then
	        /usr/bin/python $RTM_TOP/advocate/command_advocate.py --port $port --user=0 --group=0 &> /tmp/advocate.log &
        else
            uid=`id -u $user`
            gid=`getent group $group | cut -f3 -d":"`
            if [ "$uid" == "" ] || [ "$gid" == "" ]; then
                exit 101 
            else 
                /usr/bin/python $RTM_TOP/advocate/command_advocate.py --port $port --user=$uid --group=$gid &> /tmp/advocate.log &
            fi	
        fi	
	sleep 1
	newpid=`ps -ef | grep command_advocate | grep -v  'grep'| awk '{print $2}'`
	if [ "$newpid" == "" ]; then
		RETVAL=1
	else 
		RETVAL=0
	fi
    fi

    [ "$RETVAL" = 0 ] && success || failure
    echo
    return $RETVAL
}

stop() {
	TIMEOUT=10
        echo -n $"Stopping $prog: "

        pid=`ps -ef | grep command_advocate | grep -v  'grep'| awk '{print $2}'`
        if [ ! "$pid" == "" ]; then                        
            kill $pid
            RETVAL=$?
            if [ $RETVAL -eq 0 ]; then
                while [ $TIMEOUT -gt 0 ]; do
                    /bin/kill -0 "$pid" >/dev/null 2>&1 || break
                    sleep 1
                    let TIMEOUT=${TIMEOUT}-1
                done
                if [ $TIMEOUT -eq 0 ]; then
			echo "Timeout error occurred trying to stop advocate Daemon."
			RETVAL=1
                else
			RETVAL=0
                fi
            fi
        fi

        [ "$RETVAL" = 0 ] && success || failure

        echo
        return $RETVAL
}

restart(){
    stop
    sleep 5
    start
}

case "$1" in
  start)
        start
        ;;
  stop)
    stop
    ;;
  restart)
    restart
    ;;
  status)
    pid=`ps -ef | grep command_advocate | grep -v 'grep'| awk '{print $2}'`
    if [ ! "$pid" == "" ]; then                        
        echo "$prog (pid $pid) is running..."
        RETVAL=0
    else
        echo "$prog is stopped"
        RETVAL=1
    fi
    ;;
  *)
    echo $"Usage: $0 {start|stop|status|restart}"
    RETVAL=1
esac

exit $RETVAL
