#!/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:"
	;;

*)
	;;
esac

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

exit 0
