#!/bin/sh
# /etc/init.d/startupcounter
#
### BEGIN INIT INFO
# Provides:          startupcounter
# Required-Start:    $local_fs
# Required-Stop:     $local_fs
# Default-Start:     5
# Default-Stop:      0 6
# Short-Description: startupcounter
# Description:       Records number of entries into each run level to $logdirectory
### END INIT INFO

logdirectory=/var/log/startupcounter/

if ! [ -d $logdirectory ] ; then 
	mkdir $logdirectory
fi

case "$1" in
  start)
	if ! [ -f $logdirectory/startups.count ] ; then
		echo "0">>$logdirectory/startups.count
	else
		cp $logdirectory/startups.count $logdirectory/startups.bak
		expr 1 + $(<$logdirectory/startups.count) > $logdirectory/startups.count
	fi
	exit 0
  ;;
  test)
	echo "No test for startupcounter."
	exit 0
	;;
  stop)
	if ! [ -f $logdirectory/stops.count ] ; then
		echo "0">>$logdirectory/stops.count
	else
		cp $logdirectory/stops.count $logdirectory/stops.bak
		expr 1 + $(<$logdirectory/stops.count) > $logdirectory/stops.count
	fi
	exit 0
  ;;
  reset)
	rm $logdirectory*.count
  ;;
  numofstartups)
	echo $(<$logdirectory/startups.count)
	exit $(<$logdirectory/startups.count)
  ;;
  numofshutdowns)
	echo $(<$logdirectory/stops.count)
	exit $(<$logdirectory/stops.count)
  ;;
  *)
	if ! [[ -f $logdirectory/startups.count && -f $logdirectory/stops.count ]] ; then
		echo "No logs detected. Please reboot unit and try again."
		exit -1
	else
	    echo "This unit has started" $(<$logdirectory/startups.count) "times and begun shutting down" $(<$logdirectory/stops.count) "times."
		echo "Since logging has started"  $(expr $(<$logdirectory/startups.count) - $(<$logdirectory/stops.count)) "unexpected shutdowns have occurred."
		exit 0
	fi
    ;;
esac

exit 0