#!/bin/sh 

# use local::lib env for includes
# export http_proxy=http://msgw.prod.vfnet.de:8080/

# Start a Plack daemon.
PATH=/opt/apdex/App-Perf-Index-0.002/bin:/opt/apdex/App-Perf-Index-0.002/sbin:/usr/bin:/bin:/usr/sbin:/sbin
DAEMON="/opt/apdex/App-Perf-Index-0.002/bin/plackup"
NAME="apdexweb"
PLACK_APP="/opt/apdex/App-Perf-Index-0.002/bin/apdexweb"
PLACK_SRV="Starman"
PLACK_WORKERS=64
PLACK_PORT=5000
CWD=`pwd`
OPTIONS="-E sit -s ${PLACK_SRV} --workers=${PLACK_WORKERS} --port ${PLACK_PORT} --app ${PLACK_APP} -access-log /var/adm/${NAME}/access.log --error-log /var/adm/${NAME}/error.log"

DANCER_CONFDIR="/opt/apdex/App-Perf-Index-0.002/etc/apdex"
DANCER_ENVDIR="/opt/apdex/App-Perf-Index-0.002/etc/apdex/env"
export DANCER_CONFDIR DANCER_ENVDIR

PIDFILE="/var/run/$NAME.pid"

#
# These compatibility funcs are here just for sarge backports.
# They will be removed post-etch.
#
log_daemon_msg() {
    echo -n "$1: $2"
}

log_end_msg() {
    if [ $1 -ne 0 ]; then
       echo " failed!"
    else
       echo "."
    fi
}

[ -f /lib/lsb/init-functions ] && . /lib/lsb/init-functions

start()
{
    log_daemon_msg "Starting plack server" "$NAME"
    start-stop-daemon -b -m --start --quiet --pidfile "$PIDFILE" --exec $DAEMON -- $OPTIONS
    if [ $? != 0 ]; then
        log_end_msg 1
        exit 1
    else
        log_end_msg 0
    fi
}

signal()
{

    if [ "$1" = "stop" ]; then
    SIGNAL="TERM"
        log_daemon_msg "Stopping plack server" "$NAME"
    else
    if [ "$1" = "reload" ]; then
        SIGNAL="HUP"
            log_daemon_msg "Reloading plack server" "$NAME"
    else
        echo "ERR: wrong parameter given to signal()"
        exit 1
    fi
    fi
    if [ -f "$PIDFILE" ]; then
        start-stop-daemon --stop --signal $SIGNAL --quiet --pidfile "$PIDFILE"
     if [ $? = 0 ]; then
            log_end_msg 0
        else
        SIGNAL="KILL"
        start-stop-daemon --stop --signal $SIGNAL --quiet --pidfile "$PIDFILE"
            if [ $? != 0 ]; then
                log_end_msg 1
                [ $2 != 0 ] || exit 0
            else
            rm "$PIDFILE"
                log_end_msg 0
            fi
        fi
    if [ "$SIGNAL" = "KILL" ]; then
        rm -f "$PIDFILE"
        fi
    else
        log_end_msg 0
    fi
}

case "$1" in
    start)
    start
    ;;

    force-start)
    start
    ;;

    stop)
        signal stop 0
    ;;

    force-stop)
    signal stop 0
    ;;

    reload)
    signal reload 0
    ;;

    force-reload|restart)
    signal stop 1
    sleep 2
    start
    ;;

    *)
    echo "Usage: $0 {start|force-start|stop|force-stop|reload|restart|force-reload}"
    exit 1
    ;;
esac

exit 0
