#! /bin/sh

# minbif	Start/stop the minbif IRC gateway to IM networks.

# This file is based on debian's ircd-ratbox init script
# Version:	ircd-hybrid  7.0rc9-1                03-Mar-2003  joshk@triplehelix.org
# Version:	ircd-hybrid  7.2.2-2                 10-Sep-2006  ag@roxor.cx
# Version:	ircd-ratbox  2.2.6-1                 21-Aug-2007  acornet@debian.org
# Version:	minbif       1.0alpha+git20090902-1  2009-09-26   duck@duckcorp.org

### BEGIN INIT INFO
# Provides:          minbif
# Required-Start:    $syslog $remote_fs
# Required-Stop:     $syslog $remote_fs
# Should-Start:      $local_fs $network $named
# Should-Stop:       $local_fs $network $named
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: minbif daemon init.d script
# Description:       Control minbif IRC gateway to IM networks
### END INIT INFO

PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/minbif
DEFAULT=/etc/default/minbif
NAME=minbif
DESC="minbif IRC gateway to IM networks"
PIDFILE=/var/run/minbif/$NAME.pid
CONFFILE=/etc/minbif/minbif.conf
ENABLED=0

test -f $DAEMON || exit 0

if [ -e $DEFAULT ]; then
	. $DEFAULT
fi

test "$ENABLED" != "0" || exit 0

[ -f /etc/default/rcS ] && . /etc/default/rcS
. /lib/lsb/init-functions

set -e

minbif_start()
{
	PIDDIR=$(dirname $PIDFILE)
	if [ ! -d $PIDDIR ] ; then
		mkdir $PIDDIR
		chown minbif:minbif $PIDDIR
	fi
	if [ -f $PIDFILE ] ; then
		echo -n " already running"
		return 0
	fi
	start-stop-daemon --start --quiet \
		-u minbif -c minbif --pidfile $PIDFILE \
		--exec $DAEMON -- \
		--pidfile $PIDFILE $CONFFILE > /dev/null \
		|| return 2
	return 0
}

minbif_stop()
{
	start-stop-daemon --oknodo --stop --quiet \
	        --retry 10 \
		--pidfile $PIDFILE \
		--signal 15 --exec $DAEMON -- --pidfile $PIDFILE \
		|| return 2
	return 0
}

minbif_reload()
{
	if [ -f $PIDFILE ]; then
		kill -HUP $(cat $PIDFILE)
		return 0
	else
		return 2
	fi
}

case "$1" in
start)
	log_daemon_msg "Starting minbif" "minbif"
	minbif_start
	case "$?" in
	0) log_end_msg 0 ;;
	1|2) log_end_msg 1 ;;
	esac
	;;
stop)
	log_daemon_msg "Stopping $NAME" "$NAME"
	minbif_stop
	case "$?" in
	0|1) log_end_msg 0 ;;
	2) log_end_msg 1 ;;
	esac
	;;
reload)
	log_daemon_msg "Reloading $NAME" "$NAME"
	minbif_reload
	case "$?" in
	0|1) log_end_msg 0 ;;
	2) log_end_msg 1 ;;
	esac
	;;
restart|force-reload)
	log_daemon_msg "Restarting $NAME" "$NAME"
	minbif_stop
	minbif_start
	case "$?" in
	0) log_end_msg 0 ;;
	1|2) log_end_msg 1 ;;
	esac
	;;
*)
	echo "Usage: $0 {start|stop|restart|reload|force-reload}" >&2
	exit 1
	;;
esac

exit 0

