File: leds

package info (click to toggle)
nslu2-utils 20080403-4
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd, squeeze, stretch, wheezy
  • size: 288 kB
  • ctags: 8
  • sloc: sh: 2,832; makefile: 50
file content (53 lines) | stat: -rw-r--r-- 1,372 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/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