ar71xx: add script for automatic switch name migration
authorGabor Juhos <juhosg@openwrt.org>
Mon, 11 Feb 2013 21:41:16 +0000 (21:41 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Mon, 11 Feb 2013 21:41:16 +0000 (21:41 +0000)
Thanks to Jonas Gorski for the help.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 35567

target/linux/ar71xx/base-files/etc/uci-defaults/03_network-switchX-migration [new file with mode: 0755]

diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/03_network-switchX-migration b/target/linux/ar71xx/base-files/etc/uci-defaults/03_network-switchX-migration
new file mode 100755 (executable)
index 0000000..718a924
--- /dev/null
@@ -0,0 +1,106 @@
+#!/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-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"
+       ;;
+
+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