#! /bin/sh
### BEGIN INIT INFO
# Provides:          wulf2html
# Required-Start:    $all
# Required-Stop:     $all
# Should-Start:      $all
# Should-Stop:       $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start a cluster monitoring website
# Description:       This script starts a cluster monitoring website.
#                    The directory /var/www/wulf2html is created if
#                    it does not exist.
### END INIT INFO
#
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/wulf2html
NAME=wulf2html
WULFLOGGER=/usr/bin/wulflogger
WULFCONF=/etc/wulfware
WULFPATH=/var/www/wulf2html
DAEMON_OPTS="-f $WULFCONF/wulfhosts -i $WULFCONF/cluster_header.html"
DESC="Wulfware HTML logger"
#
# The types of displays wanted on webpage
WULFMODES="0 2 3 4 6"
#
# Time in seconds between webpage updates.
WULFDELAY=120                
#
# Interval in seconds between different modes of wulflogger invokations.
# This is to offset invokations so they don't overlap. Adds to boot time!
INTERVAL=2                


test -x $DAEMON || exit 0

# Load lsb functions
. /lib/lsb/init-functions


# Include wulf2html defaults if available
if [ -f /etc/default/wulf2html ] ; then
	. /etc/default/wulf2html
fi

# if dir does not exist, silently create it
test -d $WULFPATH || mkdir --parents --mode=755 $WULFPATH

set -e

case "$1" in
  start)
	log_begin_msg "Starting $DESC: "
	# start a daemon for each WULFMODE
	for i in $WULFMODES; do

	    case $i in
		0) filenm=vmstat.html;;
		1) filenm=loadav.html;;
		2) filenm=memory.html;;
		3) filenm=network.html;;
		4) filenm=cpustat.html;;
		5) filenm=pids.html;;
		6) filenm=jobs.html;;
	    esac

	    start-stop-daemon --start --quiet --background --umask=022 \
	       --exec $DAEMON -- -d $WULFDELAY $DAEMON_OPTS -t $i $WULFPATH/${filenm}
	   log_progress_msg "$i"
	   sleep $INTERVAL
	done
	log_end_msg $?
	;;

  stop)
	log_begin_msg "Stopping $DESC: "
	# stop all our daemons
	start-stop-daemon --stop --quiet --oknodo --exec $DAEMON
	start-stop-daemon --stop --quiet --oknodo --exec $WULFLOGGER
	log_end_msg $?
	;;

  restart|force-reload)
	log_begin_msg "Restarting $DESC: "
	start-stop-daemon --stop --quiet --oknodo --exec $DAEMON
	start-stop-daemon --stop --quiet --oknodo --exec $WULFLOGGER

	for i in $WULFMODES; do

	    case $i in
		0) filenm=vmstat.html;;
		1) filenm=loadav.html;;
		2) filenm=memory.html;;
		3) filenm=network.html;;
		4) filenm=cpustat.html;;
		5) filenm=pids.html;;
		6) filenm=jobs.html;;
	    esac

	   start-stop-daemon --start --quiet --background --umask=022 \
		--exec $DAEMON -- -d $WULFDELAY $DAEMON_OPTS -t $i $WULFPATH/${filenm}
	   log_progress_msg "$i"
	   sleep $INTERVAL
	done
	log_end_msg $?
	;;
  *)
	N=/etc/init.d/$NAME
	log_success_msg "Usage: $N {start|stop|restart}"
	exit 1
	;;
esac

exit 0

# Local variables:
# mode: font-lock
# End:
