b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | # Copyright (C) 2006-2019 OpenWrt.org |
| 3 | |
| 4 | . /lib/functions/leds.sh |
| 5 | |
| 6 | boot="$(get_dt_led boot)" |
| 7 | failsafe="$(get_dt_led failsafe)" |
| 8 | running="$(get_dt_led running)" |
| 9 | upgrade="$(get_dt_led upgrade)" |
| 10 | |
| 11 | set_led_state() { |
| 12 | status_led="$boot" |
| 13 | |
| 14 | case "$1" in |
| 15 | preinit) |
| 16 | status_led_blink_preinit |
| 17 | ;; |
| 18 | failsafe) |
| 19 | status_led_off |
| 20 | [ -n "$running" ] && { |
| 21 | status_led="$running" |
| 22 | status_led_off |
| 23 | } |
| 24 | status_led="$failsafe" |
| 25 | status_led_blink_failsafe |
| 26 | ;; |
| 27 | preinit_regular) |
| 28 | status_led_blink_preinit_regular |
| 29 | ;; |
| 30 | upgrade) |
| 31 | [ -n "$running" ] && { |
| 32 | status_led="$running" |
| 33 | status_led_off |
| 34 | } |
| 35 | status_led="$upgrade" |
| 36 | status_led_blink_preinit_regular |
| 37 | ;; |
| 38 | done) |
| 39 | status_led_off |
| 40 | [ "$status_led" != "$running" ] && \ |
| 41 | status_led_restore_trigger "boot" |
| 42 | [ -n "$running" ] && { |
| 43 | status_led="$running" |
| 44 | status_led_on |
| 45 | } |
| 46 | ;; |
| 47 | esac |
| 48 | } |
| 49 | |
| 50 | set_state() { |
| 51 | [ -n "$boot" -o -n "$failsafe" -o -n "$running" -o -n "$upgrade" ] && set_led_state "$1" |
| 52 | } |