aboutsummaryrefslogtreecommitdiffstats
path: root/package/base-files
diff options
context:
space:
mode:
Diffstat (limited to 'package/base-files')
-rwxr-xr-xpackage/base-files/files/lib/functions/uci-defaults-new.sh110
1 files changed, 50 insertions, 60 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 e652a8b521..f025cb696e 100755
--- a/package/base-files/files/lib/functions/uci-defaults-new.sh
+++ b/package/base-files/files/lib/functions/uci-defaults-new.sh
@@ -82,35 +82,6 @@ ucidef_set_interfaces_lan_wan() {
json_select ..
}
-ucidef_add_switch() {
- local name="$1"
-
- json_select_object switch
- json_select_object "$name"
- json_add_boolean enable 1
- json_add_boolean reset 1
- json_select ..
- json_select ..
-}
-
-ucidef_add_switch_attr() {
- local name="$1"
- local key="$2"
- local val="$3"
-
- json_select_object switch
- json_select_object "$name"
-
- case "$val" in
- true|false) [ "$val" != "true" ]; json_add_boolean "$key" $? ;;
- [0-9]) json_add_int "$key" "$val" ;;
- *) json_add_string "$key" "$val" ;;
- esac
-
- json_select ..
- json_select ..
-}
-
_ucidef_add_switch_port() {
# inherited: $num $device $need_tag $role $index $prev_role
# inherited: $n_cpu $n_ports $n_vlan $cpu0 $cpu1 $cpu2 $cpu3 $cpu4 $cpu5
@@ -205,50 +176,69 @@ _ucidef_finish_switch_roles() {
done
}
-ucidef_add_switch_ports() {
+ucidef_add_switch() {
local name="$1"; shift
local port num role device index need_tag prev_role
local cpu0 cpu1 cpu2 cpu3 cpu4 cpu5
local n_cpu=0 n_vlan=0 n_ports=0
json_select_object switch
- json_select_object "$name"
-
- for port in "$@"; do
- case "$port" in
- [0-9]*@*)
- num="${port%%@*}"
- device="${port##*@}"
- need_tag=0
- [ "${num%t}" != "$num" ] && {
- num="${num%t}"
- need_tag=1
- }
- ;;
- [0-9]*:*:[0-9]*)
- num="${port%%:*}"
- index="${port##*:}"
- role="${port#[0-9]*:}"; role="${role%:*}"
- ;;
- [0-9]*:*)
- num="${port%%:*}"
- role="${port##*:}"
- ;;
- esac
-
- if [ -n "$num" ] && [ -n "$device$role" ]; then
- _ucidef_add_switch_port
- fi
+ json_select_object "$name"
+ json_add_boolean enable 1
+ json_add_boolean reset 1
- unset num device role index need_tag
- done
+ for port in "$@"; do
+ case "$port" in
+ [0-9]*@*)
+ num="${port%%@*}"
+ device="${port##*@}"
+ need_tag=0
+ [ "${num%t}" != "$num" ] && {
+ num="${num%t}"
+ need_tag=1
+ }
+ ;;
+ [0-9]*:*:[0-9]*)
+ num="${port%%:*}"
+ index="${port##*:}"
+ role="${port#[0-9]*:}"; role="${role%:*}"
+ ;;
+ [0-9]*:*)
+ num="${port%%:*}"
+ role="${port##*:}"
+ ;;
+ esac
+
+ if [ -n "$num" ] && [ -n "$device$role" ]; then
+ _ucidef_add_switch_port
+ fi
- json_select ..
+ unset num device role index need_tag
+ done
+ json_select ..
json_select ..
_ucidef_finish_switch_roles
}
+ucidef_add_switch_attr() {
+ local name="$1"
+ local key="$2"
+ local val="$3"
+
+ json_select_object switch
+ json_select_object "$name"
+
+ case "$val" in
+ true|false) [ "$val" != "true" ]; json_add_boolean "$key" $? ;;
+ [0-9]) json_add_int "$key" "$val" ;;
+ *) json_add_string "$key" "$val" ;;
+ esac
+
+ json_select ..
+ json_select ..
+}
+
ucidef_add_switch_port_attr() {
local name="$1"
local port="$2"