X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=package%2Fbase-files%2Ffiles%2Flib%2Ffunctions%2Fuci-defaults-new.sh;h=6a8b6b9029d29674993e780b56f24a1b3cf58f17;hb=d6b5ce48dd95f05842df892cf4afe68d117ac34a;hp=ba954dee21fc563832795cedf5dc7fe76c2922aa;hpb=a8b6ca879754c584d7693d892f3764654355e02c;p=librecmc%2Flibrecmc.git 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 ba954dee21..6a8b6b9029 100755 --- a/package/base-files/files/lib/functions/uci-defaults-new.sh +++ b/package/base-files/files/lib/functions/uci-defaults-new.sh @@ -34,7 +34,7 @@ _ucidef_set_interface() { json_select_object $name json_add_string ifname "${iface%%.*}" - [ "$iface" == "${iface%%.*}" ] || json_add_boolean create_vlan 1 + [ "$iface" = "${iface%%.*}" ] || json_add_boolean create_vlan 1 json_select .. } @@ -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 @@ -70,8 +78,8 @@ ucidef_add_switch() { json_select_object switch json_select_object $name - [ "$enable" -eq 1 ] && json_add_boolean enable 1 - [ "$reset" -eq 1 ] && json_add_boolean reset 1 + json_add_boolean enable $enable + json_add_boolean reset $reset json_select .. json_select .. @@ -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