kernel: fq_codel: dont reinit flow state
[openwrt/staging/lynxis/omap.git] / package / rssileds / files / rssileds.init
1 #!/bin/sh /etc/rc.common
2 # (C) 2012 Daniel Golle, Allnet GmbH <dgolle@allnet.de>
3
4 START=96
5 STOP=96
6 RSSILEDS_BIN="/usr/sbin/rssileds"
7
8 SERVICE_DAEMONIZE=1
9 SERVICE_WRITE_PID=1
10
11 start_rssid() {
12 local name
13 local dev
14 local threshold
15 local refresh
16 local leds
17 config_get name $1 name
18 config_get dev $1 dev
19 config_get threshold $1 threshold
20 config_get refresh $1 refresh
21 leds="$( cur_iface=$1 ; config_foreach get_led led )"
22 SERVICE_PID_FILE=/var/run/rssileds-$dev.pid
23 service_start $RSSILEDS_BIN $dev $refresh $threshold $leds
24 }
25
26 stop_rssid() {
27 local dev
28 config_get dev $1 dev
29 SERVICE_PID_FILE=/var/run/rssileds-$dev.pid
30 service_stop $RSSILEDS_BIN
31 }
32
33 get_led() {
34 local name
35 local sysfs
36 local trigger
37 local iface
38 config_get sysfs $1 sysfs
39 config_get name $1 name "$sysfs"
40 config_get trigger $1 trigger "none"
41 config_get iface $1 iface
42 config_get minq $1 minq
43 config_get maxq $1 maxq
44 config_get offset $1 offset
45 config_get factor $1 factor
46 [ "$trigger" = "rssi" ] || return
47 [ "$iface" = "$cur_iface" ] || return
48 [ ! "$minq" ] || [ ! "$maxq" ] || [ ! "$offset" ] || [ ! "$factor" ] && return
49 echo "none" > /sys/class/leds/$sysfs/trigger
50 echo "$sysfs $minq $maxq $offset $factor"
51 }
52
53 off_led() {
54 local name
55 local sysfs
56 local trigger
57 config_get sysfs $1 sysfs
58 config_get name $1 name "$sysfs"
59 config_get trigger $1 trigger "none"
60 [ "$trigger" = "rssi" ] || return
61 echo "0" > /sys/class/leds/$sysfs/brightness
62 }
63
64 start() {
65 [ -e /sys/class/leds/ ] && [ -x "$RSSILEDS_BIN" ] && {
66 config_load system
67 config_foreach start_rssid rssid
68 }
69 }
70
71 stop() {
72 config_load system
73 config_foreach stop_rssid rssid
74 config_foreach off_led led
75 }