#!/bin/bash
### BEGIN INIT INFO
# Provides:          obm-tomcat
# Required-Start:    $local_fs $remote_fs
# Required-Stop:     $local_fs $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      S 0 1 6
# Short-Description: OBM Tomcat server
# Description:       Debian init script for the OBM Tomcat server
### END INIT INFO

set -e

PATH=/sbin:/bin:/usr/sbin:/usr/bin
export JAVA_HOME=/usr/lib/jvm/java-6-sun
test -d /usr/lib/jvm/java-1.6.0-openjdk && {
    JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk
}
test -d /usr/lib/jvm/java-openjdk && {
    JAVA_HOME=/usr/lib/jvm/java-openjdk
}

if [ -r /etc/default/locale ]; then
  . /etc/default/locale
  export LANG
fi


tomcat_pid=/var/run/obm_tomcat.pid
tomcat_path=/usr/lib/tomcat
jps=$JAVA_HOME/bin/jps

tomcat_running() {
    test -f ${tomcat_pid} || return 1
    supposed_pid=`cat ${tomcat_pid}`
    ret=`$jps |grep -q ${supposed_pid}`
    return $ret
}

start_tomcat() {
    tomcat_running && {
        echo "OBM Tomcat already running."
        return 0
    }

    ${tomcat_path}/bin/catalina.sh start
}

stop_tomcat() {
    tomcat_running || {
        echo "OBM Tomcat not running."
        return 0
    }

    start-stop-daemon --stop --quiet --oknodo --pidfile ${tomcat_pid}
    echo -n "Waiting for OBM Tomcat shutdown."
    while tomcat_running; do
	echo -n "."
	sleep 0.5
    done
    rm -f ${tomcat_pid}
    echo ""
}

status() {
	if tomcat_running; then
		echo "Tomcat is running"
	else
		echo "Tomcat is stopped"
	fi
}

case "$1" in
    start)
        start_tomcat
        ;;
    
    stop)
        stop_tomcat
        ;;
	status)
		status
		;;
    restart)
        stop_tomcat
        start_tomcat
        ;;
	*)
		echo "Usage: $0 {start|stop|status|restart|reload}"
esac

exit 0
