0a8c5fbcdbf609ef5577aacd5bd4266ebefe258e
[openwrt.git] / target / linux / bcm53xx / base-files / etc / diag.sh
1 #!/bin/sh
2 # Copyright (C) 2014 OpenWrt.org
3
4 . /lib/functions/leds.sh
5
6 get_status_led() {
7         local status_led_file
8
9         # There may be more than one color of power LED, try to avoid amber/red
10         status_led_file=$(find /sys/class/leds/ -name "*:power" -a ! -name "*:amber:*" -a ! -name "*:red:*" | head -n1)
11         if [ -d "$status_led_file" ]; then
12                 status_led=$(basename $status_led_file)
13                 return
14         fi;
15
16         # Now just pick any power LED
17         status_led_file=$(find /sys/class/leds/ -name "*:power:*" | head -n1)
18         if [ -d "$status_led_file" ]; then
19                 status_led=$(basename $status_led_file)
20                 return
21         fi;
22 }
23
24 set_state() {
25         get_status_led
26
27         [ -z "$status_led" ] && return
28
29         case "$1" in
30         preinit)
31                 status_led_blink_preinit
32                 ;;
33         failsafe)
34                 status_led_blink_failsafe
35                 ;;
36         preinit_regular)
37                 status_led_blink_preinit_regular
38                 ;;
39         done)
40                 status_led_on
41                 ;;
42         esac
43 }