packages: sort network related packages into package/network/
[openwrt.git] / package / network / utils / 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 }