#!/bin/sh
#
# ldirectord  Linux Director Daemon
#
# chkconfig:	345 92 08
# description: Start and stop ldirectord on non-heartbeat systems \
#              Using the config file /etc/ha.d/ldirectord.cf \
#	       Normally ldirectord is started and stopped by heartbeat
#
# processname:	ldirectord
# config:	/etc/ha.d/ldirectord.cf

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

# Get network config
. /etc/sysconfig/network

# Check that networking is up.
if is_yes "${NETWORKING}"; then
	if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
		msg_network_down "ldirectord"
		exit 1
	fi
else
	exit 0
fi

# Get service config
[ -f /etc/sysconfig/ldirectord ] && . /etc/sysconfig/ldirectord

start() {
	if [ -f /var/lock/subsys/ldirectord ]; then
		msg_already_running "ldirectord"
		return
	fi

	msg_starting "ldirectord"
	daemon /usr/sbin/ldirectord start
	RETVAL=$?
	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/ldirectord
}

stop() {
	if [ ! -f /var/lock/subsys/ldirectord ]; then
		msg_not_running "ldirectord"
		return
	fi

	msg_stopping ldirectord
	# XXX, do not use "daemon" to "start", try "action" instead?
	daemon /usr/sbin/ldirectord stop
	rm -f /var/lock/subsys/ldirectord
}

RETVAL=0
case "$1" in
  start)
  	start
	;;
  stop)
  	stop
	;;
  restart)
  	stop
	start
	;;
  try-restart)
	action "Try-Restarting ldirectord" /usr/sbin/ldirectord try-restart
	;;
  reload|force-reload)
	if [ -f /var/lock/subsys/ldirectord ]; then
		msg_reloading "ldirectord"
		daemon /usr/sbin/ldirectord reload
		RETVAL=$?
	else
		msg_not_running "ldirectord"
		RETVAL=7
	fi
	;;
  status)
	status /usr/sbin/ldirectord status
	RETVAL=$?
	;;
  *)
	msg_usage "$0 {start|stop|restart|try-restart|status|reload|force-reload}"
	exit 3
	;;
esac

exit $RETVAL
