Root/package/network/utils/rssileds/files/rssileds.init

1#!/bin/sh /etc/rc.common
2# (C) 2012 Daniel Golle, Allnet GmbH <dgolle@allnet.de>
3
4START=96
5STOP=96
6RSSILEDS_BIN="/usr/sbin/rssileds"
7
8SERVICE_DAEMONIZE=1
9SERVICE_WRITE_PID=1
10
11start_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
26stop_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
33get_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
53off_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
64start() {
65    [ -e /sys/class/leds/ ] && [ -x "$RSSILEDS_BIN" ] && {
66        config_load system
67        config_foreach start_rssid rssid
68    }
69}
70
71stop() {
72    config_load system
73    config_foreach stop_rssid rssid
74    config_foreach off_led led
75}
76

Archive Download this file



interactive