From: Jo-Philipp Wich Date: Tue, 24 Nov 2015 21:16:35 +0000 (+0000) Subject: base-files: add ucidef_set_interface_wan() and ucidef_add_switch_ports() X-Git-Tag: reboot~1418 X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=d6b5ce48dd95f05842df892cf4afe68d117ac34a;p=openwrt%2Fopenwrt.git base-files: add ucidef_set_interface_wan() and ucidef_add_switch_ports() Add further helper functions to uci-defaults-new.sh for easier declarations of complex switch layouts. Signed-off-by: Jo-Philipp Wich SVN-Revision: 47638 --- 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 7222ff839c..6a8b6b9029 100755 --- a/package/base-files/files/lib/functions/uci-defaults-new.sh +++ b/package/base-files/files/lib/functions/uci-defaults-new.sh @@ -52,6 +52,14 @@ ucidef_set_interface_lan() { json_select .. } +ucidef_set_interface_wan() { + local wan_if=$1 + + json_select_object network + _ucidef_set_interface wan $wan_if + json_select .. +} + ucidef_set_interfaces_lan_wan() { local lan_if=$1 local wan_if=$2 @@ -91,6 +99,48 @@ ucidef_add_switch_attr() { json_select .. } +ucidef_add_switch_ports() { + local name="$1"; shift + local port num role dev idx + + json_select_object switch + json_select_object "$name" + json_select_array ports + + for port in "$@"; do + case "$port" in + [0-9]*@*) + num="${port%%@*}" + dev="${port##*@}" + ;; + [0-9]*:*:[0-9]*) + num="${port%%:*}" + idx="${port##*:}" + role="${port#[0-9]*:}"; role="${role%:*}" + ;; + [0-9]*:*) + num="${port%%:*}" + role="${port##*:}" + ;; + esac + + if [ -n "$num" ] && [ -n "$dev$role" ]; then + json_add_object + json_add_int num "$num" + [ -n "$dev" ] && json_add_string device "$dev" + [ -n "$role" ] && json_add_string role "$role" + [ -n "$idx" ] && json_add_int index "$idx" + json_close_object + fi + + unset num dev role idx + done + + json_select .. + json_select .. + json_select .. +} + ucidef_add_switch_vlan() { local name=$1 local vlan=$2