aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ar71xx/base-files/etc/uci-defaults/04_led_migration
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/ar71xx/base-files/etc/uci-defaults/04_led_migration')
-rw-r--r--target/linux/ar71xx/base-files/etc/uci-defaults/04_led_migration90
1 files changed, 90 insertions, 0 deletions
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/04_led_migration b/target/linux/ar71xx/base-files/etc/uci-defaults/04_led_migration
new file mode 100644
index 0000000..d578f59
--- /dev/null
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/04_led_migration
@@ -0,0 +1,90 @@
+#!/bin/sh
+#
+# Copyright (C) 2013 OpenWrt.org
+#
+
+LED_OPTIONS_CHANGED=0
+
+. /lib/functions.sh
+
+do_led_update_sysfs()
+{
+ local cfg=$1; shift
+ local tuples="$@"
+ local sysfs
+ local name
+
+ config_get sysfs $cfg sysfs
+ config_get name $cfg name
+
+ [ -z "$sysfs" ] && return
+
+ for tuple in $tuples; do
+ local old=${tuple%=*}
+ local new=${tuple#*=}
+ local new_sysfs
+
+ new_sysfs=$(echo ${sysfs} | sed "s/${old}/${new}/")
+
+ [ "$new_sysfs" = "$sysfs" ] && continue
+
+ uci set system.${cfg}.sysfs="${new_sysfs}"
+ LED_OPTIONS_CHANGED=1
+
+ logger -t led-migration "sysfs option of LED \"${name}\" updated to ${new_sysfs}"
+ done;
+}
+
+migrate_leds()
+{
+ config_load system
+ config_foreach do_led_update_sysfs led "$@"
+}
+
+. /lib/ar71xx.sh
+
+board=$(ar71xx_board_name)
+
+case "$board" in
+dhp-1565-a1|\
+dir-825-c1|\
+dir-835-a1)
+ migrate_leds ":orange:=:amber:" ":wifi_bgn=:wlan2g"
+ ;;
+
+wndap360)
+ migrate_leds "wndap360:=netgear:"
+ ;;
+
+wndr3700)
+ migrate_leds "wndr3700:=netgear:"
+ ;;
+
+wndr3700v4 | \
+wndr4300)
+ migrate_leds ":orange:=:amber:"
+ ;;
+
+wnr2000)
+ migrate_leds "wnr2000:=netgear:"
+ ;;
+
+wnr2200)
+ migrate_leds "wnr2200:=netgear:"
+ ;;
+
+wnr612-v2)
+ migrate_leds "wnr612v2:=netgear:"
+ ;;
+
+wnr1000-v2)
+ migrate_leds "wnr1000v2:=netgear:"
+ ;;
+
+*)
+ ;;
+esac
+
+[ "$LED_OPTIONS_CHANGED" = "1" ] && uci commit system
+
+exit 0