diff mbox series

base-files: migrate old UCI network bridge ports syntax

Message ID 20240518114101.9459-1-zajec5@gmail.com
State Under Review
Delegated to: Rafał Miłecki
Headers show
Series base-files: migrate old UCI network bridge ports syntax | expand

Commit Message

Rafał Miłecki May 18, 2024, 11:41 a.m. UTC
From: Rafał Miłecki <rafal@milecki.pl>

netifd supports more accurate "ports" option (instead of "ifname") for
years now. Relevant changes were even backported to OpenWrt 21.02. Add
uci-defaults script that translates config files using deprecated
syntax.

Identical commit f716c30241d5 ended up reverted back in 2021 by
80be798d4a4f due to breaking downgrades. With 19.07 support ended it
should no longer be an issue.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
---
 .../uci-defaults/11_network-migrate-bridges   | 23 +++++++++++++++++++
 1 file changed, 23 insertions(+)
 create mode 100644 package/base-files/files/etc/uci-defaults/11_network-migrate-bridges
diff mbox series

Patch

diff --git a/package/base-files/files/etc/uci-defaults/11_network-migrate-bridges b/package/base-files/files/etc/uci-defaults/11_network-migrate-bridges
new file mode 100644
index 0000000000..745648531f
--- /dev/null
+++ b/package/base-files/files/etc/uci-defaults/11_network-migrate-bridges
@@ -0,0 +1,23 @@ 
+. /lib/functions.sh
+
+migrate_ports() {
+	local config="$1"
+	local type ports ifname
+
+	config_get type "$config" type
+	[ "$type" != "bridge" ] && return
+
+	config_get ports "$config" ports
+	[ -n "$ports" ] && return
+
+	config_get ifname "$config" ifname
+	[ -z "$ifname" ] && return
+
+	for port in $ifname; do uci add_list network.$config.ports="$port"; done
+	uci delete network.$config.ifname
+}
+
+config_load network
+config_foreach migrate_ports device
+
+exit 1