#!/bin/bash
#
### BEGIN INIT INFO
# Provides: obm-caldav
# Required-Start: $syslog $network
# Required-Stop: $syslog $network
# Default-Start: 2 3 4 5
# Default-Stop: S 0 1 6
# Short-Description: caldav server.
# Description: init system for obm-caldav. Starts the equinox server
#              process with caldav plugins deployed.
### END INIT INFO

PATH=/sbin:/usr/sbin:/bin:/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
}


test -f $JAVA_HOME/bin/java || {
    echo "JDK not found in JAVA_HOME: $JAVA_HOME"
    exit 1
}

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



caldav_pid=/var/run/obm-caldav.pid
caldav_home=/usr/share/obm-caldav
caldav_logs=/var/log/obm-caldav/obm-caldav.log
jps=$JAVA_HOME/bin/jps

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

start_caldav() {
    caldav_running && {
	echo "OBM Caldav Server already running."
	return 0
    }

    ${caldav_home}/obm-caldav 0>/dev/null 1>/dev/null 2>/dev/null 3>/dev/null &
    new_pid=$!
    echo $new_pid > $caldav_pid 
    echo "OBM Caldav Server started: `cat ${caldav_pid}`"
}

stop_caldav() {
    caldav_running || {
	echo "OBM Caldav Server not running."
	return 0
    }
    start-stop-daemon --stop --quiet --oknodo --pidfile ${caldav_pid}
    echo -n "Waiting for OBM Caldav Server shutdown."
    while caldav_running; do
    echo -n "."
    sleep 0.5
    done
    rm -f ${caldav_pid}
    echo ""
}

case "$1" in
    start)
        start_caldav
        ;;
    
    stop)
        stop_caldav
        ;;
    restart)
        stop_caldav
        start_caldav
        ;;
esac

exit 0
