OpenWrt – Rev 4

Subversion Repositories:
Rev:
#!/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 "$@"
}

board=$(board_name)

case "$board" in
dhp-1565-a1|\
dir-825-c1|\
dir-835-a1)
        migrate_leds ":orange:=:amber:" ":wifi_bgn=:wlan2g"
        ;;
dr344)
        migrate_leds ":red:=:green:" ":yellow:=:green:"
        ;;
gl-ar150)
        migrate_leds "gl-ar150:wlan=gl-ar150:orange:wlan" "gl-ar150:lan=gl-ar150:green:lan" "gl-ar150:wan=gl-ar150:green:wan"
        ;;
oolite-v1)
        migrate_leds "oolite:=${board}"
        ;;
wndap360|\
wndr3700|\
wnr2000|\
wnr2200)
        migrate_leds "${board}:=netgear:"
        ;;
wndr3700v4|\
wndr4300)
        migrate_leds ":orange:=:amber:"
        ;;
wnr1000-v2)
        migrate_leds "wnr1000v2:=netgear:"
        ;;
wnr612-v2)
        migrate_leds "wnr612v2:=netgear:"
        ;;
esac

[ "$LED_OPTIONS_CHANGED" = "1" ] && uci commit system

exit 0