diff options
Diffstat (limited to 'package')
-rwxr-xr-x | package/base-files/files/lib/functions/uci-defaults-new.sh | 50 |
1 files changed, 50 insertions, 0 deletions
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 |