#!/bin/sh
#
# jabberd2	Jabberd2 Server
#
# chkconfig: - 90 10
# description:	Jabberd2 Server 

### BEGIN INIT INFO
# Provides: jabberd2
# Required-Start: $network
# Should-Start:  syslogd mysqld postgresql slapd
# Required-Stop: $network
# Should-Stop: syslogd mysqld postgresql slapd
# Default-Start: 3 4 5
# Short-Description: Launches the jabberd2 server
# Description: This startup script launches the jabberd2 server
### END INIT INFO

# Do not load RH compatibility interface.
WITHOUT_RC_COMPAT=1

# Source function library.
. /etc/init.d/functions

unset FORWARD_ORDER_CONFIGURED REVERSE_ORDER_CONFIGURED

for f in /etc/jabberd2/cfg.d/*.cfg; do
	NAME=$(basename $f)
	NAME=$(echo $NAME | sed -e 's,[[:digit:]]*\(\w*\)\.cfg,\1,g')
	FORWARD_ORDER_CONFIGURED="$FORWARD_ORDER_CONFIGURED $NAME"
	REVERSE_ORDER_CONFIGURED="$NAME $REVERSE_ORDER_CONFIGURED"
done

unset NAME

unset ORDER ACTION

visit_in_order()
{
	for i in $ORDER; do
		[ -e /etc/init.d/jabberd2-$i ] || continue
		/etc/init.d/jabberd2-$i $ACTION
	done
}

start()
{
	ORDER="$FORWARD_ORDER_CONFIGURED"
	ACTION=start
	visit_in_order
}

stop()
{
	ORDER="$REVERSE_ORDER_CONFIGURED"
	ACTION=stop
	visit_in_order
}

condstop()
{
	ORDER="$REVERSE_ORDER_CONFIGURED"
	ACTION=condstop
	visit_in_order
}

condrestart()
{
	unset FORWARD_ORDER_RUN
	for i in $FORWARD_ORDER_CONFIGURED; do
		[ -e /etc/init.d/jabberd2-$i ] || continue
		/etc/init.d/jabberd2-$i status > /dev/null
		if [ $? -eq 0 ]; then
			FORWARD_ORDER_RUN="$FORWARD_ORDER_RUN $i";
		fi
	done

	condstop

	ORDER="$FORWARD_ORDER_RUN"
	ACTION=start
	visit_in_order
}

# See how we were called.
case "$1" in 
	start)
		start
		;;
	stop)
		stop
		;;
	reload | restart)
		stop
		start
		;;
	condstop)
		condstop
		;;
	condreload | condrestart)
		condrestart
		;;
	status)
		ORDER="$FORWARD_ORDER_CONFIGURED"
		ACTION=status
		visit_in_order
		;;
	*)
		msg_usage "${0##*/} {start|stop|reload|restart|condstop|condrestart|condreload|status}"
		RETVAL=1
esac

exit $RETVAL
