base-files: uci-defaults-new: add ucidef_add_switch_port_attr() helper
authorjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Wed, 25 Nov 2015 15:43:28 +0000 (15:43 +0000)
committerjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Wed, 25 Nov 2015 15:43:28 +0000 (15:43 +0000)
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@47645 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/base-files/files/lib/functions/uci-defaults-new.sh

index 9d1ecb6..120f35a 100755 (executable)
@@ -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