#!/bin/bash
#
#  TODO:
#     To be in perfect debian style we should use start-stop-daemon also
#     for chrooting.
# 
#

### some default values ###

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

DEFAULT_DAEMON=/usr/bin/freepopsd
DEFAULT_PIDFILE=/var/run/freepopsd.pid
DEFAULT_CHROOTED_DAEMON_OPTS=" -n -s nobody.nogroup"
DEFAULT_DAEMON_OPTS=" -n"

NAME=freepopsd
DESC="freepops daemon"

### /etc/default/ loading ###

# Include freepops defaults if available. Used variables are:
# DAEMON, DAEMON_OPTS, CHROOTED_DAEMON_OPTS, PIDFILE, CHROOT
# all have a DEFAULT_ here, except CHROOT that is empty if the 
# daemon should run in the normal environment

if [ -f /etc/default/freepops ] ; then
	. /etc/default/freepops
fi

if [ -z "$DAEMON" ] ; then
	DAEMON=$DEFAULT_DAEMON
fi

if [ -z "$PIDFILE" ] ; then
	PIDFILE=$DEFAULT_PIDFILE
fi

if [ -z "$DAEMON_OPTS" ] ; then
	DAEMON_OPTS=$DEFAULT_DAEMON_OPTS
fi

if [ -z "$CHROOTED_DAEMON_OPTS" ] ; then
	CHROOTED_DAEMON_OPTS=$DEFAULT_CHROOTED_DAEMON_OPTS
fi

test -x $DAEMON || exit 0

set -e

### helpers ###

start_freepopsd () {
	if [ -z "$CHROOT" ] ; then
		start-stop-daemon --start -b --quiet -m -p $PIDFILE \
			--exec $DAEMON -- $DAEMON_OPTS
	else
		echo -n "(chroot) "
		start-stop-daemon --start -b --quiet -m -p $PIDFILE \
			-r $CHROOT --exec $DAEMON -- $CHROOTED_DAEMON_OPTS
	fi

}

stop_freepopsd () {
	if [ -z "$CHROOT" ] ; then
		start-stop-daemon --stop --quiet -p $PIDFILE 
	else
		echo -n "(chroot) "
		start-stop-daemon --stop --quiet -p $PIDFILE 
	fi
	rm $PIDFILE
}

### real code ###

case "$1" in
  start)
	echo -n "Starting $DESC: "
	start_freepopsd
	echo "$NAME."
	;;
  stop)
	echo -n "Stopping $DESC: "
	stop_freepopsd
	echo "$NAME."
	;;
  restart|force-reload)
	echo -n "Restarting $DESC: "
	stop_freepopsd
	sleep 1
	start_freepopsd
	echo "$NAME."
	;;
  *)
	N=/etc/init.d/freepops
	echo "Usage: $N {start|stop|restart}" >&2
	exit 1
	;;
esac

exit 0
