#!/bin/sh
#
# Start the Cherokee Web Server.
# http://www.cherokee-project.com/
#
# The following signals are supported by Cherokee:
# SIGHUP 	Restarts the server gracefully
# SIGUSR1 	Restarts the server closing all the opened connections
# SIGUSR2 	Reopens the log files
# SIGTERM 	Exits
#
# Written by Pablo Hernan Saro (pablosaro@gmail.com)

NAME=cherokee
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/lib/cherokee
DAEMON=/usr/sbin/cherokee
PIDFILE=/var/run/cherokee.pid
CONF=/etc/cherokee/cherokee.conf
OPTIONS="-d -C $CONF"

export PATH

test -f $DAEMON || exit 0

case "$1" in
  start)
    echo "Starting $NAME web server..."
    $DAEMON $OPTIONS
    sleep 2
    echo -n "done"
    ;;

  stop)
    echo "Stopping $NAME web server..."
    if [ -f $PIDFILE ]; then
	    PID=`cat $PIDFILE`
            kill -s TERM $PID
	    sleep 4
            echo -n "done"
    else
	    echo -n "Error: $PIDFILE does not exist."
    fi
    ;;

  reload)
    echo "Reloading $NAME configuration"
    if [ -f $PIDFILE ]; then
	    PID=`cat $PIDFILE`
            kill -s HUP $PID
	    sleep 3
            echo -n "done"
    else
	    echo -n "Error: $PIDFILE does not exist."
    fi
    ;;

  rotate-logs)
    echo "Rotating logs"
    if [ -f $PIDFILE ]; then
	    PID=`cat $PIDFILE`
            kill -s USR2 $PID
	    sleep 3
            echo -n "done"
    else
	    echo -n "Error: $PIDFILE does not exist."
    fi
    ;;

  restart)
    echo "Restarting the server closing all the opened connections"
    if [ -f $PIDFILE ]; then
	    PID=`cat $PIDFILE`
            kill -s USR1 $PID
	    sleep 4
            echo -n "done"
    else
	    echo -n "Error: $PIDFILE does not exist."
    fi
    ;;

  force-restart)
    $0 stop
    $0 start
    ;;

  *)
    echo "Usage: $0 {start|stop|reload|rotate-logs|restart|force-restart}"
    exit 1
    ;;
esac

if [ $? == 0 ]; then
	echo .
	exit 0
else
	echo failed
	exit 1
fi