#!/bin/sh
#
# Copyright (C) 2013 OpenWrt.org
#

SWITCH_NAME_CHANGED=

do_change_switch_name() {
	local config="$1"
	local option=$2
	local oldname=$3
	local newname=$4
	local val

	config_get val "$config" $option
	[ "$val" != "$oldname" ] && return 0

	uci_set network "$config" $option $newname
	SWITCH_NAME_CHANGED=1

	return 0
}

migrate_switch_name() {
	local oldname=$1
	local newname=$2

	. /lib/functions.sh

	config_load network

	logger -t migrate-switchX "Updating switch names in network configuration"

	config_foreach do_change_switch_name switch name $oldname $newname
	config_foreach do_change_switch_name switch_vlan device $oldname $newname

	[ "$SWITCH_NAME_CHANGED" == "1" ] && {
		logger -t migrate-switchX "Switch names updated, saving network configuration"
		uci commit network
	}
}

. /lib/ar71xx.sh

board=$(ar71xx_board_name)

case "$board" in
dir-825-c1|\
wzr-hp-g300nh2|\
pb92|\
ap113|\
tl-wdr4300|\
tl-wr1041n-v2|\
wrt160nl|\
ap121|\
ap121-mini|\
ap96|\
airrouter|\
dir-600-a1|\
dir-615-c1|\
dir-615-e1|\
dir-615-e4|\
ja76pf|\
rb-750|\
rb-751|\
tew-632brp|\
tew-712br|\
tl-mr3220|\
tl-mr3220-v2 |\
tl-mr3420|\
tl-wr741nd|\
tl-wr741nd-v4|\
tl-wr841n-v7|\
whr-g301n|\
whr-hp-g300n|\
whr-hp-gn|\
wzr-hp-ag300h|\
wzr-hp-g450h|\
ew-dorin|\
ew-dorin-router)
	migrate_switch_name "eth0" "switch0"
	;;

el-m150|\
rb-450)
	migrate_switch_name "eth1" "switch0"
	;;

db120 |\
rb-2011l | \
rb-2011uas-2hnd)
	migrate_switch_name "eth0" "switch0"
	migrate_switch_name "eth1" "switch1"
	;;

dir-825-b1|\
tew-673gru|\
nbg460n_550n_550nh)
	migrate_switch_name "rtl8366s" "switch0"
	;;

tl-wr1043nd)
	migrate_switch_name "rtl8366rb" "switch0"
	;;

esac

exit 0
