#!/bin/sh
### BEGIN INIT INFO
# Provides:          leds-@LVL@
# Required-Start:    $local_fs
# Required-Stop:
# Default-Start:     S 1 2 3 4 5
# Default-Stop:
# Short-Description: Start led blinking
# Description:       This script is executed at the start of
#                    each run-level transition.  It should be
#                    the first 'start' script.
### END INIT INFO
#
# 'start'  indicates the start of a runlevel change
# 'stop' at the end of the runlevel change - we are in the new
#         runlevel.
#
# state outputs 'system', 'user' etc according the the nature of
# the runlevel it is passed (the *new* runlevel is used).
state(){
	case "$1" in
	S|N)     echo system;;
	0|6)     echo shutdown;;
	1)       echo singleuser;;
	2|3|4|5) echo user;;
	*)       echo "led change: $runlevel: runlevel unknown" >&2
		 echo system;;
	esac
}

# trumpet "beeps" an announcement on systems with such support.
l=120   # Long beep time
s=40    # Try to keep a 3:1 ratio
trumpet(){
	case "$1" in
	k)    leds beep -l $l; leds beep -l $s; leds beep -l $l;;
	n)    leds beep -l $l; leds beep -l $s;;
	*)    leds beep;;
	esac
}

case "$1" in
stop)	leds "$(state "$runlevel")"
	if [ "$(state "$runlevel")" = "user" ]; then
		trumpet "k"
	fi
	;;
start)	leds boot "$(state "$runlevel")"
	;;
restart|force-reload|*)
	echo "led change: $1: command ignored" >&2
	;;
esac
