treewide: drop shebang from non-executable lib files
[openwrt/openwrt.git] / package / base-files / files / lib / functions / leds.sh
index e4423b4cc8d19c2e16039c5a5d643119546c857a..a7532faa2fd553f2ebc6555cad2001fc84297e6f 100644 (file)
@@ -1,17 +1,24 @@
-#!/bin/sh
 # Copyright (C) 2013 OpenWrt.org
 
-get_dt_led() {
-       local label
+get_dt_led_path() {
        local ledpath
        local basepath="/proc/device-tree"
        local nodepath="$basepath/aliases/led-$1"
 
        [ -f "$nodepath" ] && ledpath=$(cat "$nodepath")
+       [ -n "$ledpath" ] && ledpath="$basepath$ledpath"
+
+       echo "$ledpath"
+}
+
+get_dt_led() {
+       local label
+       local ledpath=$(get_dt_led_path $1)
+
        [ -n "$ledpath" ] && \
-               label=$(cat "$basepath$ledpath/label" 2>/dev/null) || \
-               label=$(cat "$basepath$ledpath/chan-name" 2>/dev/null) || \
-               echo "led label not found" 1>&2
+               label=$(cat "$ledpath/label" 2>/dev/null) || \
+               label=$(cat "$ledpath/chan-name" 2>/dev/null) || \
+               label=$(basename "$ledpath")
 
        echo "$label"
 }
@@ -36,6 +43,17 @@ led_off() {
        led_set_attr $1 "brightness" 0
 }
 
+status_led_restore_trigger() {
+       local trigger
+       local ledpath=$(get_dt_led_path $1)
+
+       [ -n "$ledpath" ] && \
+               trigger=$(cat "$ledpath/linux,default-trigger" 2>/dev/null)
+
+       [ -n "$trigger" ] && \
+               led_set_attr "$(get_dt_led $1)" "trigger" "$trigger"
+}
+
 status_led_set_timer() {
        led_timer $status_led "$1" "$2"
        [ -n "$status_led2" ] && led_timer $status_led2 "$1" "$2"