#!/bin/bash
# A very basic start-stop script, see also:
# http://dev.catalystframework.org/wiki/gettingstarted/howtos/deploy/lighttpd_fastcgi

APP_PID_FILE="/home/rob/develop/App-ForExample/Eg/eg-fastcgi.pid"
APP_HOME="/home/rob/develop/App-ForExample/Eg"
APP_NAME="eg"
APP_PACKAGE="Eg"
APP_ERROR_LOG="/home/rob/develop/App-ForExample/Eg/log/`basename $APP_PID_FILE-error.log`"

case "$1" in
    start)
        echo -n "Starting $APP_NAME ($APP_PACKAGE) in $APP_HOME..."

        if [ -r $APP_PID_FILE ]; then
            echo " $APP_NAME is already running"
            echo "Already started"
            exit -1
        fi
    
        cd $APP_HOME
        /home/rob/develop/App-ForExample/Eg/script/eg_fastcgi.pl -l /tmp/eg.socket -n 5 -p $APP_PID_FILE -keeperr 2>>$APP_ERROR_LOG &

        # Wait for the application to start
        TIMEOUT=10; while [ ! -r $APP_PID_FILE ]; do
            echo -n '.'; sleep 1; TIMEOUT=$[$TIMEOUT - 1]
            if [ $TIMEOUT = 0 ]; then
                echo " NOT starting? (timeout)"; exit -1
            fi
        done
        echo "done"
        PID=`cat "$APP_PID_FILE"`
        echo "Started $APP_NAME ($APP_PACKAGE) (process $PID)"
    ;;
    stop)
        echo -n "Stopping $APP_NAME ($APP_PACKAGE)... "

        if [ -s "$APP_PID_FILE" ]; then
            PID=`cat "$APP_PID_FILE"`
            echo -n "Killing process $PID... "
            kill $PID
            echo -n "done. Wating for $APP_PID_FILE to be culled..."
            TIMEOUT=10; while [ -r $APP_PID_FILE ]; do
                echo -n '.'; sleep 1; TIMEOUT=$[$TIMEOUT - 1]
                if [ $TIMEOUT = 0 ]; then
                    echo " NOT stopping? (timeout)"; exit -1
                fi
            done
            echo "done"
            echo "Stopped $APP_NAME ($APP_PACKAGE)"
        else 
            echo "$APP_NAME is not running"
            echo "Already stopped"
            exit -1
        fi
    ;;
    restart)
        $0 stop
        sleep 2
        $0 start
    ;;
    status|about)
        
        echo    "Status for $APP_NAME ($APP_PACKAGE)"
        echo    "   home: $APP_HOME"
        echo    "   log: $APP_ERROR_LOG"
        echo -n "   pid: "
        if [ -s "$APP_PID_FILE" ]; then
            PID=`cat "$APP_PID_FILE"`
            echo -n $PID
        else 
            echo -n " -"
        fi
        echo " ($APP_PID_FILE)"
    ;;
    *)
        echo "Don't understand \"$1\" ($*)"
        echo "Usage: $0 { start | stop | restart | status }"
        exit -1
    ;;
esac