#!/bin/bash
### BEGIN INIT INFO
# Provides:          fcgi-trac
# Required-Start:    $local_fs $remote_fs $network
# Required-Stop:     $local_fs $remote_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start/stop Trac FastCGI daemon
### END INIT INFO
#
# fcgi-trac    This init.d script starts a Trac FastCGI daemon.
#              It uses spawn-fcgi from lighty.

VHOST=`basename $0 | sed 's/^fcgi-trac-//g'`

USER=www-data
GROUP=www-data
PATH=/sbin:/bin:/usr/sbin:/usr/bin
SSD="/sbin/start-stop-daemon"
RETVAL=0

FCGI_DAEMON="/usr/bin/spawn-fcgi"
FCGI_PROGRAM="/var/www/trac/${VHOST}/cgi-bin/trac.fcgi"
FCGI_PORT="4050"
FCGI_SOCKET="/var/run/trac-fastcgi-${VHOST}.sock"
FCGI_PIDFILE="/var/run/spawn-fcgi-trac-${VHOST}.pid"

set -e

. /lib/lsb/init-functions

case "$1" in
  start)
        log_daemon_msg "Starting spawn-fcgi"
        if ! $FCGI_DAEMON -s $FCGI_SOCKET -f $FCGI_PROGRAM -u $USER -g $GROUP -P $FCGI_PIDFILE; then
            log_end_msg 1
        else
            log_end_msg 0
        fi
        RETVAL=$?
  ;;
  stop)
        log_daemon_msg "Killing all spawn-fcgi processes"
        if kill -2 `cat $FCGI_PIDFILE` > /dev/null 2> /dev/null; then
            log_end_msg 0
        else
            log_end_msg 1
        fi
        RETVAL=$?
  ;;
  *)
        echo "Usage: $0 {start|stop}" >&2
        exit 1
  ;;
esac

exit $RETVAL
