ipq806x: Sort occurrences of boardame alphabetically
[openwrt/staging/chunkeey.git] / target / linux / ipq806x / base-files / etc / diag.sh
index 6b3622dc580cd6addd4e84b6d8f581614976b62c..df4afd936caefb1625121122ff1fb2b53774895f 100755 (executable)
@@ -1,34 +1,44 @@
 #!/bin/sh
+# Copyright (C) 2016 Henryk Heisig hyniu@o2.pl
 
 . /lib/functions/leds.sh
-. /lib/ipq806x.sh
 
-get_status_led() {
-       case $(ipq806x_board_name) in
-       c2600)
-               status_led="status:blue"
-               ;;
-       ea8500)
-               status_led="ea8500:white:power"
-               ;;
-       esac
-}
+boot="$(get_dt_led boot)"
+failsafe="$(get_dt_led failsafe)"
+running="$(get_dt_led running)"
+upgrade="$(get_dt_led upgrade)"
 
 set_state() {
-       get_status_led
+       status_led="$boot"
 
        case "$1" in
        preinit)
                status_led_blink_preinit
                ;;
        failsafe)
+               status_led_off
+               [ -n "$running" ] && {
+                       status_led="$running"
+                       status_led_off
+               }
+               status_led="$failsafe"
                status_led_blink_failsafe
                ;;
        preinit_regular)
                status_led_blink_preinit_regular
                ;;
+       upgrade)
+               [ -n "$running" ] && {
+                       status_led="$upgrade"
+                       status_led_blink_preinit_regular
+               }
+               ;;
        done)
-               status_led_on
+               status_led_off
+               [ -n "$running" ] && {
+                       status_led="$running"
+                       status_led_on
+               }
                ;;
        esac
 }