From 04b8b97fffd205a9c4a7f156b99378adc206e0ae Mon Sep 17 00:00:00 2001
From: Jo-Philipp Wich <jow@openwrt.org>
Date: Wed, 25 Nov 2015 15:43:28 +0000
Subject: base-files: uci-defaults-new: add ucidef_add_switch_port_attr()
 helper

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 47645
---
 .../files/lib/functions/uci-defaults-new.sh        | 36 ++++++++++++++++++++++
 1 file changed, 36 insertions(+)

(limited to 'package/base-files/files/lib/functions')

diff --git a/package/base-files/files/lib/functions/uci-defaults-new.sh b/package/base-files/files/lib/functions/uci-defaults-new.sh
index 9d1ecb60e0..120f35acdb 100755
--- a/package/base-files/files/lib/functions/uci-defaults-new.sh
+++ b/package/base-files/files/lib/functions/uci-defaults-new.sh
@@ -144,6 +144,42 @@ ucidef_add_switch_ports() {
 	json_select ..
 }
 
+ucidef_add_switch_port_attr() {
+	local name=$1
+	local port=$2
+	local key=$3
+	local val=$4
+	local ports i num
+
+	json_select_object switch
+	json_select_object $name
+
+	json_get_keys ports ports
+	json_select_array ports
+
+	for i in $ports; do
+		json_select $i
+		json_get_var num num
+
+		if [ -n "$num" ] && [ $num -eq $port ]; then
+			json_select_object attr
+
+			case "$val" in
+				[0-9]) json_add_int "$key" "$val" ;;
+				*) json_add_string "$key" "$val" ;;
+			esac
+
+			json_select ..
+		fi
+
+		json_select ..
+	done
+
+	json_select ..
+	json_select ..
+	json_select ..
+}
+
 ucidef_add_switch_vlan() {
 	local name=$1
 	local vlan=$2
-- 
cgit v1.2.3