OpenWrt – Rev 1

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;
}

do_internet_led_rename()
{
        config_load system

        [ -n $(config_get led_internet name) ] || return
        [ -z $(config_get led_dsl name) ] || return

        uci rename system.led_internet=led_dsl
        uci set system.led_dsl.name=dsl

        LED_OPTIONS_CHANGED=1
        logger -t led-migration "internet led renamed to dsl"
}

migrate_leds()
{
        config_load system
        config_foreach do_led_update_sysfs led "$@"
}

case "$(board_name)" in
arcadyan,arv452cqw|\
arcadyan,arv7510pw22|\
arcadyan,arv7519rw22|\
arcadyan,arv752dpw|\
arcadyan,arv752dpw22|\
alphanetworks,asl56026|\
bt,homehub-v2b|\
bt,homehub-v3a|\
bt,homehub-v5a|\
avm,fritz7360sl|\
arcadyan,vg3503j)
        do_internet_led_rename
        ;;
netgear,dgn3500|\
netgear,dgn3500b)
        migrate_leds "dgn3500:blue:wireless=dgn3500:green:wireless"
        ;;
*)
        ;;
esac

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

exit 0