#!/bin/sh
#
# ircd            This shell script takes care of starting and stopping
#                 ircd (Internet Relay Chat server).
#
# chkconfig: 345 90 20
# description: ircd is a Internet Relay Chat

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

# Source networking configuration.
SourceIfNotEmpty /etc/sysconfig/network && [ "$NETWORKING" != no ] || exit

IRCD_BIN=/usr/sbin/ircd
IRCD_ROOT="/var/lib/ircd"
IRCD_CONF="/etc/ircd/ircd.conf"

[ -x "$IRCD_BIN" -a -d "$IRCD_ROOT" -a -r "$IRCD_CONF" ] || exit

LOCKFILE=/var/lock/subsys/ircd
RETVAL=0

adjust()
{
	action "Adjusting environment for IRC server:" /etc/chroot.d/ircd.all
	RETVAL=$?
	return $RETVAL
}

start()
{
	adjust || return
	echo -n "Starting IRC server: "
	daemon "$IRCD_BIN" -r "$IRCD_ROOT" -u ircd
	RETVAL=$?
	echo
	[ $RETVAL -eq 0 ] && touch "$LOCKFILE"
	return $RETVAL
}

stop()
{
	echo -n "Shutting down IRC server: "
	killproc "$IRCD_BIN"
	RETVAL=$?
	echo
	[ $RETVAL -eq 0 ] && rm -f "$LOCKFILE"
	return $RETVAL
}

restart()
{
	stop
	start
}

# See how we were called.
case "$1" in
	start)
		start
		;;
	stop)
		stop
		;;
	reload)
		reload
		;; 
	restart)
		restart
		;;
	status)
		status ircd
		RETVAL=$?
		;;
	adjust)
		adjust
		;;
	condstop)
		if [ -e "$LOCKFILE" ]; then
			stop
		fi
		;;
	condrestart)
		if [ -e "$LOCKFILE" ]; then
			restart
		fi
		;;
	*)
		echo "Usage: ${0##*/} {start|stop|restart|reload|status|adjust|condstop|condrestart}"
		RETVAL=1
esac

exit $RETVAL
