#! /bin/sh
#
# ejabberd Start/stop ejabberd server
# code modified by Roberto Ostinelli roberto at ostinelli dot net
# for Salix changed again by Raphael Groner raphgro(at)web.de
#### BEGIN INIT INFO
# Provides: ejabberd
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Starts ejabberd jabber server
# Description: Starts ejabberd jabber server, an XMPP
# compliant server written in Erlang.
### END INIT INFO
PATH=/sbin:/bin:/usr/sbin:/usr/bin
EJABBERDCTL=/usr/sbin/ejabberdctl
NAME=ejabberd
test -f $EJABBERDCTL || exit 0
if [ -f /etc/default/ejabberd ] ; then . /etc/default/ejabberd
fi
ctl()
{ 
	$EJABBERDCTL $1 >/dev/null
}
fail_msg() {
	echo -n " ...failed!"
	echo "  ($1)"
	exit 1
}
succ_msg() {
	echo " ...done."
	exit 0
}
case "$1" in 
start) 
	echo -n "Starting jabber server: $NAME" 
	if ctl status ; then 
		echo -n " - Server is already running." 
		succ_msg
	else 
		ctl start 
	fi ;;
stop) 
	echo -n "Stopping jabber server: $NAME" 
	if ctl status ; then 
		if ctl stop ; then 
			cnt=0 
			sleep 1 
			while ctl status ; do 
				cnt=`expr $cnt + 1` 
				if [ $cnt -gt 60 ] ; then 
					fail_msg "Could not stop server." 
				fi 
				sleep 1 
			done 
		fi
	else 
		echo -n " - Server is not running." 
		succ_msg
	fi ;; 
restart|force-reload) 
	echo -n "Restarting jabber server: $NAME" 
	if ctl status ; then 
		ctl restart 
	else 
		echo -n " - Server is not running. Starting $NAME" 
		ctl restart 
	fi ;; 
*) 
	echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload}" >&2 
	exit 0 ;;
esac
if [ $? -eq 0 ]; then 
	succ_msg
	exit 0
else
	fail_msg "Errors were encoundered." 
	exit 1
fi
