#!/bin/sh
### BEGIN INIT INFO
# Provides:          schooltool
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: SchoolTool server
### END INIT INFO

SERVER_DESC="SchoolTool"
SERVER=schooltool
INSTANCE=standard

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=$SERVER
DESC="$SERVER_DESC"
PIDFILE=/var/run/schooltool/$SERVER.pid
SCRIPTNAME=/etc/init.d/$SERVER
CONFIGFILE=/etc/schooltool/$INSTANCE/paste.ini
LOGFILE=/var/log/schooltool/paste.log

PASTER=/usr/bin/paster
PASTER_ARGS="--user=schooltool --group=schooltool --daemon --pid-file=$PIDFILE --log-file=$LOGFILE --quiet"

# Gracefully exit if the package has been removed or is not configured.
test -x $PASTER || exit 0
test -f $CONFIGFILE || exit 0

. /lib/lsb/init-functions

case "$1" in
  start)
	# Make sure we have a /var/run sub-directory
        [ -d /var/run/schooltool ] \
            || install --group schooltool --owner schooltool -d /var/run/schooltool

        log_begin_msg "Starting $DESC..."
        $PASTER serve $PASTER_ARGS $CONFIGFILE start || log_end_msg 1
	log_end_msg 0
	;;
  stop)
	log_begin_msg "Stopping $DESC..."
        if [ -f $PIDFILE ] ; then
            $PASTER serve $PASTER_ARGS $CONFIGFILE stop || log_end_msg 1
        fi
	log_end_msg 0
	;;
  restart|force-reload)
	# Make sure we have a /var/run sub-directory
        [ -d /var/run/schooltool ] \
            || install --group schooltool --owner schooltool -d /var/run/schooltool

 	log_begin_msg "Restarting $DESC..."
        if [ -f $PIDFILE ] ; then
            $PASTER serve $PASTER_ARGS $CONFIGFILE restart || log_end_msg 1
        else
            $PASTER serve $PASTER_ARGS $CONFIGFILE start || log_end_msg 1
        fi
 	log_end_msg 0
	;;
  status)
        $PASTER serve --pid-file=$PIDFILE $CONFIGFILE status || exit 1
        exit 0
        ;;
  *)
 	log_success_msg "Usage: $SCRIPTNAME {start|stop|restart|force-reload|status}" \
                >&2
        exit 1
	;;
esac

exit 0
