#!/bin/bash
#
### BEGIN INIT INFO
# Provides: obm-locator
# Required-Start: $syslog $network
# Required-Stop: $syslog $network
# Default-Start: 2 3 4 5
# Default-Stop: S 0 1 6
# Short-Description: Opush Server.
# Description: init system for obm-locator. Starts the equinox server
### 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



locator_pid=/var/run/obm-locator.pid
locator_home=/usr/share/obm-locator
locator_logs=/var/log/obm-locator/obm-locator.log
jps=$JAVA_HOME/bin/jps

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

start_locator() {
    locator_running && {
	echo "OBM locator Server already running."
	return 0
    }

    ${locator_home}/obm-locator 0>/dev/null 1>/dev/null 2>/dev/null 3>/dev/null &
    new_pid=$!
    echo $new_pid > $locator_pid 
    echo "OBM Locator Server started: `cat ${locator_pid}`"
}

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

status_locator() {
    locator_running || {
        echo "OBM Locator Server not running."
        return 3
    }
   return 0
}

case "$1" in
    start)
        start_locator
        ;;
    
    stop)
        stop_locator
        ;;
    status)
	status_locator
	;;
    restart)
        stop_locator
        start_locator
        ;;
esac

exit $ret
