#!/bin/bash

# chkconfig: 345 95 20

NAME=%s
VERSION=%s
PID_DIR=%s
PID_FILE=$PID_DIR/$NAME.pid
INSTALL_DIR=%s
INSTALL_JAR=$INSTALL_DIR/"$NAME"-"$VERSION"-standalone.jar
mkdir -p $PID_DIR

# returns 0 if PID in file is running, 1 if otherwise
process_running() {
	pid=`cat "$PID_FILE" 2>/dev/null`
	if [ "$pid" = '' ]
	then
        	return 1 # PID file does not exist
	else
        	kill_report=`kill -0 $pid 2>&1`
		if [ "$kill_report" = '' ]
		then
	    		return 0
		else
			echo "Stale PID file exists at $PID_FILE"
			return 1
		fi
	fi
}

start() {
	if process_running
	then
		echo "$NAME is already running as process `cat $PID_FILE`."
		exit 1
	fi
	echo "Starting $NAME"
	java %s -jar $INSTALL_JAR %s &> %s &
	PID=$!
	echo $PID > $PID_FILE
	exit 0
}

stop() {
	if ! process_running
	then
		echo "$NAME is not running."
	else
		echo "Shutting down $NAME"
		kill `cat $PID_FILE`
		rm $PID_FILE
	fi
}

force-stop() {
	if ! process_running
	then
		echo "$NAME is not running."
	else
		echo "Forcefully shutting down $NAME"
		kill -9 `cat $PID_FILE`
		rm $PID_FILE
	fi
}

status() {
	if process_running
	then
		echo "$NAME is running."
	else
		echo "$NAME is not running."
	fi
	exit 0
}

case "$1" in
    start)
	start
	;;
    stop)
	stop
	;;
    force-stop)
	force-stop
	;;
    status)
	status
	;;
    restart)
    stop
	start
	;;
    *)
        echo "Usage: "$NAME"d {start|stop|status|restart|force-stop}"
	exit 1
	;;
esac
exit $?
