aboutsummaryrefslogtreecommitdiffstats
path: root/package/base-files/files/lib
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2015-11-24 21:16:35 +0000
committerJo-Philipp Wich <jow@openwrt.org>2015-11-24 21:16:35 +0000
commit1d772488810470b2b84a5959bc756c39fdd68438 (patch)
treedf7ed84f237ae89fc5a1223c2b164724c5ddcef6 /package/base-files/files/lib
parentc3b118ae69b3168be3602a6782084638b0422ddd (diff)
downloadmaster-187ad058-1d772488810470b2b84a5959bc756c39fdd68438.tar.gz
master-187ad058-1d772488810470b2b84a5959bc756c39fdd68438.tar.bz2
master-187ad058-1d772488810470b2b84a5959bc756c39fdd68438.zip
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 <jow@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@47638 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/base-files/files/lib')
-rwxr-xr-xpackage/base-files/files/lib/functions/uci-defaults-new.sh50
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