0a8c5fbcdbf609ef5577aacd5bd4266ebefe258e
[openwrt/svn-archive/archive.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 }