diff options
Diffstat (limited to 'package/network/utils/rssileds/files')
| -rw-r--r-- | package/network/utils/rssileds/files/rssileds.init | 75 | 
1 files changed, 75 insertions, 0 deletions
diff --git a/package/network/utils/rssileds/files/rssileds.init b/package/network/utils/rssileds/files/rssileds.init new file mode 100644 index 000000000..b0d262725 --- /dev/null +++ b/package/network/utils/rssileds/files/rssileds.init @@ -0,0 +1,75 @@ +#!/bin/sh /etc/rc.common +# (C) 2012 Daniel Golle, Allnet GmbH <dgolle@allnet.de> + +START=96 +STOP=96 +RSSILEDS_BIN="/usr/sbin/rssileds" + +SERVICE_DAEMONIZE=1 +SERVICE_WRITE_PID=1 + +start_rssid() { +	local name +	local dev +	local threshold +	local refresh +	local leds +	config_get name $1 name +	config_get dev $1 dev +	config_get threshold $1 threshold +	config_get refresh $1 refresh +	leds="$( cur_iface=$1 ; config_foreach get_led led )" +	SERVICE_PID_FILE=/var/run/rssileds-$dev.pid +	service_start $RSSILEDS_BIN $dev $refresh $threshold $leds +} + +stop_rssid() { +	local dev +	config_get dev $1 dev +	SERVICE_PID_FILE=/var/run/rssileds-$dev.pid +	service_stop $RSSILEDS_BIN +} + +get_led() { +	local name +	local sysfs +	local trigger +	local iface +	config_get sysfs $1 sysfs +	config_get name $1 name "$sysfs" +	config_get trigger $1 trigger "none" +	config_get iface $1 iface +	config_get minq $1 minq +	config_get maxq $1 maxq +	config_get offset $1 offset +	config_get factor $1 factor +	[ "$trigger" = "rssi" ] || return +	[ "$iface" = "$cur_iface" ] || return +	[ ! "$minq" ] || [ ! "$maxq" ] || [ ! "$offset" ] || [ ! "$factor" ] && return +	echo "none" > /sys/class/leds/$sysfs/trigger +	echo "$sysfs $minq $maxq $offset $factor" +} + +off_led() { +	local name +	local sysfs +	local trigger +	config_get sysfs $1 sysfs +	config_get name $1 name "$sysfs" +	config_get trigger $1 trigger "none" +	[ "$trigger" = "rssi" ] || return +	echo "0" > /sys/class/leds/$sysfs/brightness +} + +start() { +	[ -e /sys/class/leds/ ] && [ -x "$RSSILEDS_BIN" ] && { +		config_load system +		config_foreach start_rssid rssid +	} +} + +stop() { +	config_load system +	config_foreach stop_rssid rssid +	config_foreach off_led led +}  | 
