#! /bin/sh
### BEGIN INIT INFO
# Provides:          jabberd14
# Required-Start:    $local_fs $syslog
# Required-Stop:     $local_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Jabber/XMPP server
# Description:       Jabberd14 is the original server implementation of the
#                    Jabber protocol, now known as XMPP.
### END INIT INFO
#
# Init script to start the Jabberd14 daemon
#
#     Created from Bernd Eckenfels <ecki@lina.inka.de>
#
#     Written by Miquel van Smoorenburg <miquels@cistron.nl>.
#     Modified for Debian GNU/Linux
#     by Ian Murdock <imurdock@gnu.ai.mit.edu>.
#
#     LSBized by Paul van Tilburg <paulvt@debian.org>
#
# Version:  @(#)skeleton  1.8  03-Mar-1998  miquels@cistron.nl
#
# This file was automatically customized by dh-make on Sun, 21 May 2000 12:31:20 +0200

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/jabberd
NAME="jabberd14"
DESC="Jabber/XMPP server"
CONF=/etc/jabber/jabber.xml
PID=/var/run/jabberd/jabber.pid
SERVDIR=/etc/jabber/jabber.d/

test -f $DAEMON -a -f $CONF || exit 0

. /lib/lsb/init-functions

# Set some parameters like the hostname.
ENABLED=1
PARAMS=""
if test -f /etc/default/jabberd14; then
   . /etc/default/jabberd14
fi

# Don't start if disabled!
test "$ENABLED" != "0" || exit 0

case "$1" in
   start)
      if ! [ -d $(dirname $PID) ]; then
        mkdir -p -m 0755 $(dirname $PID)
        chown jabberd:jabberd $(dirname $PID)
      fi
      if [ -e $PID ]; then
        PIDDIR=/proc/$(cat $PID)
        if [ -d ${PIDDIR} -a  "$(readlink -f ${PIDDIR}/exe)" = "${DAEMON}" ]; then 
          log_success_msg "$DESC already started; not starting."
          exit
        else
          log_success_msg "Removing stale PID file $PID."
          rm -f $PIDFILE
        fi
      fi

      log_daemon_msg "Starting $DESC" "$NAME"
      start-stop-daemon --start --quiet --pidfile $PID \
        --chuid jabberd:jabberd --exec $DAEMON -- --background $PARAMS
      log_end_msg $?
      if [ -d $SERVDIR ]; then
          run-parts --arg=$1 $SERVDIR || true
      fi
      ;;
   stop)
      if [ -d $SERVDIR ]; then
         run-parts --reverse --arg=$1 $SERVDIR || true
      fi
      log_daemon_msg "Stopping $DESC" "$NAME"
      start-stop-daemon --stop --retry 5 --quiet --oknodo --pidfile $PID \
         --chuid jabberd:jabberd --exec $DAEMON
      log_end_msg $?
      rm -f $PID
      ;;
   reload|force-reload)
      log_action_begin_msg "Reloading $DESC" "$NAME"
      start-stop-daemon --stop --signal 1 --quiet -pidfile $PID \
         --chuid jabberd:jabberd --exec $DAEMON
      log_action_end_msg $?
      if [ -d $SERVDIR ]; then
         run-parts --arg=$1 $SERVDIR || true
      fi
      ;;
   restart)
      $0 stop
      $0 start
      ;;
   *)
      N=/etc/init.d/$NAME
      echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
      exit 1
      ;;
esac

exit 0
