#!/bin/sh

# whatap_infra service
#


export WHATAP_HOME=/usr/whatap/infra/conf
PATH=/sbin:/usr/sbin:/usr/bin:/usr/lib/netsvc:/usr/lib/netsvc/yp
export PATH

BIN=/usr/whatap/infra/whatap_infrad
CONF=/usr/whatap/infra/conf/whatap.conf
PID=/usr/whatap/infra/conf/whatap.pid


whatapinfra_start() {
    export WHATAP_HOME=/usr/whatap/infra/conf
    PATH=/sbin:/usr/sbin:/usr/bin:/usr/lib/netsvc:/usr/lib/netsvc/yp
    export PATH

    BIN=/usr/whatap/infra/whatap_infrad
    CONF=/usr/whatap/infra/conf/whatap.conf
    PID=/usr/whatap/infra/conf/whatap.pid
    if [ -f "$PID" ]; then
        OLD_PID=$(cat "$PID" 2>/dev/null)

        if ps -ef \
            | grep -v grep \
            | grep "$OLD_PID" \
            | grep "$BIN" >/dev/null 2>&1; then
            echo "whatap-infra already running (PID $OLD_PID)."
            exit 1
        else
            echo "Stale PID file found (PID $OLD_PID). Removing $PID"
            rm -f "$PID"
        fi
    fi


    if [ ! -r $CONF ]; then
        echo "$CONF does not appear to exist. Abort."
        exit 1
    fi

    if [ -s $PID ]; then
        echo "whatap-infra appears to already be running?\nTo override, you could delete pid file like following.\n\nrm -f $PID \n"
        exit 1
    fi

    echo "Starting whatap-infra daemon..."
    if [ -x $BIN ]; then
        $BIN
    fi
}


whatapinfra_term() {
    echo "Shutdown whatap-infra quickly..."
    kill -QUIT $(cat $PID)
    rm -f $PID
}


whatapinfra_stop() {
    echo "Shutdown whatap-infra gracefully..."
    kill -QUIT $(cat $PID)
    rm -f $PID
}


whatapinfra_restart() {
    whatapinfra_stop
    sleep 3
    whatapinfra_start
}


case "$1" in
    start)
        whatapinfra_start
        ;;
    stop)
        whatapinfra_stop
        ;;
    restart)
        whatapinfra_restart
        ;;
    *)
        echo "usage: `basename $0` {start|stop|restart}"
esac

