#!/bin/sh
#
# ejabberdStart/stop ejabberd server
#
# chkconfig: 345 70 30
# description: ejabberd is an instant messaging system.  \
#
# processname: ejabberd
# config: /etc/ejabberd/ejabberd.cfg
# pidfile: /var/run/ejabberd.pid

### BEGIN INIT INFO
# Provides:
# Required-Start: network
# Required-Stop: network
# Should-Start:
# Default-Start: 5
# Short-Description: Launches ejabberd, a instant messaging system
# Description: This startup script launches ejabberd, a instant messaging system using xmpp.
### END INIT INFO

. /etc/rc.d/init.d/functions

start() {
        gprintf "Starting ejabberd: "
        daemon --user=ejabberd --check=ejabberd \
	    "erl" "-pa /usr/lib64/ejabberd-1.1.3/ebin \
                   -sname ejabberd \
                   -s ejabberd \
                   -ejabberd config \\\"/etc/ejabberd/ejabberd.cfg\\\" \
                             log_path \\\"/var/log/ejabberd/ejabberd.log\\\" \
                   -sasl sasl_error_logger \\{file,\\\"/var/log/ejabberd/sasl.log\\\"\\} \
                   -mnesia dir \\\"/var/lib/ejabberd/spool\\\" \
                   -kernel inetrc \\\"/etc/ejabberd/inetrc\\\" \
                   -detached"
        RETVAL=$?
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/ejabberd
        echo
        return $RETVAL
}

stop() {
        # Stop daemons.
        gprintf "Shutting down ejabberd: "
        su -s /bin/bash - ejabberd -c "erl -pa /usr/lib64/ejabberd-1.1.3/ebin -noinput -sname ejabberdctl -s ejabberd_ctl -extra ejabberd@`hostname -s` stop" && success || failure
        RETVAL=$?
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/ejabberd
        echo
        return $RETVAL
}

restart() {
        stop
        start
}

# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart)
        restart
        ;;
  condrestart)
        [ -f /var/lock/subsys/ejabberd ] && restart || :
        ;;
  status)
        su -s /bin/bash - ejabberd -c "erl -pa /usr/lib64/ejabberd-1.1.3/ebin -noinput -sname ejabberdctl -s ejabberd_ctl -extra ejabberd@`hostname -s` status"
        ;;
  *)
        gprintf "Usage: ejabberd {start|stop|restart|reload|condrestart|status}\n"
        exit 1
esac

exit $?


