diff options
Diffstat (limited to 'package')
| -rwxr-xr-x | package/base-files/files/etc/init.d/led | 45 | ||||
| -rwxr-xr-x | package/base-files/files/sbin/led.sh | 25 | 
2 files changed, 70 insertions, 0 deletions
diff --git a/package/base-files/files/etc/init.d/led b/package/base-files/files/etc/init.d/led new file mode 100755 index 000000000..7ccb150cf --- /dev/null +++ b/package/base-files/files/etc/init.d/led @@ -0,0 +1,45 @@ +#!/bin/sh /etc/rc.common +# (C) 2008 openwrt.org + +. /etc/functions.sh + +START=60 + +load_led() { +	local name +	local sysfs +	local trigger +	local dev +	local mode +	local default + +	config_get name $1 name +	config_get sysfs $1 sysfs +	config_get trigger $1 trigger +	config_get dev $1 dev +	config_get mode $1 mode +	config_get default $1 default + +	[ -e /sys/class/leds/${sysfs}/brightness -a -n "$name" ] && { +		logger "setting up led : $name" +		[ -n "$default" ] && {  +			[ $default -eq 1 ] &&  +				echo 1 >/sys/class/leds/${sysfs}/brightness \ +				|| echo 0 >/sys/class/leds/${sysfs}/brightness +		} +		[ -z "$trigger" ] && trigger=none +		echo $trigger > /sys/class/leds/${sysfs}/trigger +		[ "$trigger" == "netdev" -a -n "$dev" ] && { +			[ -z "$mode" ] && mode=link +			echo $dev > /sys/class/leds/${sysfs}/device_name +			echo $mode > /sys/class/leds/${sysfs}/mode +		}  +	} +} + +start() { +	[ -e /sys/class/leds/ ] && { +		config_load system +		config_foreach load_led led +	} +} diff --git a/package/base-files/files/sbin/led.sh b/package/base-files/files/sbin/led.sh new file mode 100755 index 000000000..e4e92af7e --- /dev/null +++ b/package/base-files/files/sbin/led.sh @@ -0,0 +1,25 @@ +#!/bin/sh +# (C) 2008 openwrt.org + +. /etc/functions.sh +ACTION=$1 +NAME=$2 +do_led() { +	local name +	local sysfs +	config_get name $1 name +	config_get sysfs $1 sysfs +	[ "$name" == "$NAME" -a -e "/sys/class/leds/${sysfs}" ] && { +		[ "$ACTION" == "set" ] && +			echo 1 >/sys/class/leds/${sysfs}/brightness \ +			|| echo 0 >/sys/class/leds/${sysfs}/brightness +		exit 0 +	} +} + +[ "$1" == "clear" -o "$1" == "set" ] && +	[ -n "$2" ] &&{ +		config_load system +		config_foreach do_led +		exit 1 +	}  | 
