#!/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