#!/bin/sh
#
# Starts lighttpd.
#
NAME=lighttpd
DAEMON=/usr/sbin/$NAME
PID_FILE="/var/run/$NAME.pid"
CONF_FILE="/etc/$NAME/$NAME.conf"
LASTGOOD_CONF_FILE="/etc/$NAME/${NAME}_lg.conf"
DEFAULT_CONF_FILE="/etc/$NAME/${NAME}_def.conf"

[ -r /etc/default/$NAME ] && . /etc/default/$NAME

start() {
	printf "Starting lighttpd: "
	start-stop-daemon -S -q -p $PID_FILE --exec $DAEMON -- -f $CONF_FILE
  (
    sleep 1
    if ps aux | grep -qE "root\s+/usr/sbin/lighttpd" ; then
      echo lighttpd OK, store file ;
      if diff -q /home/s30/ssl.pem /var/perco/ssl/ssl.pem.lastgood ; then
        echo .  same file
      else
        echo .  diff file
        cp -f /home/s30/ssl.pem /var/perco/ssl/ssl.pem.lastgood
      fi
    else
      echo lighttpd BAD, starting lastgood config
      start-stop-daemon -S -q -p $PID_FILE --exec $DAEMON -- -f $LASTGOOD_CONF_FILE
      (
        sleep 1
        if ps aux | grep -qE "root\s+/usr/sbin/lighttpd" ; then
          echo lighttpd OK, store file ;
        else
          echo lighttpd BAD, starting default config
          start-stop-daemon -S -q -p $PID_FILE --exec $DAEMON -- -f $DEFAULT_CONF_FILE
        fi
      ) &
    fi
  ) &
	echo "OK"
}
stop() {
	printf "Stopping lighttpd: "
	start-stop-daemon -K -q -p $PID_FILE
	echo "OK"
}
restart() {
	stop
	start
}

case "$1" in
  start)
	start
	;;
  stop)
	stop
	;;
  restart|reload)
	restart
	;;
  *)
	echo "Usage: $0 {start|stop|restart}"
	exit 1
esac

exit $?
