#!/bin/ash
-CFG=/etc/board.json
-
. /lib/functions.sh
. /usr/share/libubox/jshn.sh
json_select_object "$name"
json_add_string ifname "$iface"
- if ! json_is_a protocol string; then
+ if ! json_is_a protocol string || [ -n "$proto" ]; then
case "$proto" in
static|dhcp|none|pppoe) : ;;
*)
}
_ucidef_add_switch_port() {
- # inherited: $num $device $need_tag $role $index $prev_role
+ # inherited: $num $device $need_tag $want_untag $role $index $prev_role
# inherited: $n_cpu $n_ports $n_vlan $cpu0 $cpu1 $cpu2 $cpu3 $cpu4 $cpu5
n_ports=$((n_ports + 1))
json_select_array ports
json_add_object
json_add_int num "$num"
- [ -n "$device" ] && json_add_string device "$device"
- [ -n "$need_tag" ] && json_add_boolean need_tag "$need_tag"
- [ -n "$role" ] && json_add_string role "$role"
- [ -n "$index" ] && json_add_int index "$index"
+ [ -n "$device" ] && json_add_string device "$device"
+ [ -n "$need_tag" ] && json_add_boolean need_tag "$need_tag"
+ [ -n "$want_untag" ] && json_add_boolean want_untag "$want_untag"
+ [ -n "$role" ] && json_add_string role "$role"
+ [ -n "$index" ] && json_add_int index "$index"
json_close_object
json_select ..
_ucidef_finish_switch_roles() {
# inherited: $name $n_cpu $n_vlan $cpu0 $cpu1 $cpu2 $cpu3 $cpu4 $cpu5
- local index role roles num device need_tag port ports
+ local index role roles num device need_tag want_untag port ports
json_select switch
json_select "$name"
json_select "$name"
json_select ports
json_select "$port"
- json_get_vars num device need_tag
+ json_get_vars num device need_tag want_untag
json_select ..
json_select ..
num="${port%%@*}"
device="${port##*@}"
need_tag=0
+ want_untag=0
[ "${num%t}" != "$num" ] && {
num="${num%t}"
need_tag=1
}
+ [ "${num%u}" != "$num" ] && {
+ num="${num%u}"
+ want_untag=1
+ }
;;
[0-9]*:*:[0-9]*)
num="${port%%:*}"
_ucidef_add_switch_port
fi
- unset num device role index need_tag
+ unset num device role index need_tag want_untag
done
json_select ..
json_select ..
json_select ..
}
+ucidef_set_led_usbport() {
+ local obj="$1"
+ local name="$2"
+ local sysfs="$3"
+ shift
+ shift
+ shift
+
+ json_select_object led
+
+ json_select_object "$obj"
+ json_add_string name "$name"
+ json_add_string type usbport
+ json_add_string sysfs "$sysfs"
+ json_select_array ports
+ for port in "$@"; do
+ json_add_string port "$port"
+ done
+ json_select ..
+ json_select ..
+
+ json_select ..
+}
+
ucidef_set_led_wlan() {
local cfg="led_$1"
local name="$2"
json_select ..
}
+ucidef_set_led_portstate() {
+ local cfg="led_$1"
+ local name="$2"
+ local sysfs="$3"
+ local port_state="$4"
+
+ json_select_object led
+
+ json_select_object "$1"
+ json_add_string name "$name"
+ json_add_string type portstate
+ json_add_string sysfs "$sysfs"
+ json_add_string trigger port_state
+ json_add_string port_state "$port_state"
+ json_select ..
+
+ json_select ..
+}
+
ucidef_set_led_default() {
local cfg="led_$1"
local name="$2"
json_select ..
}
+ucidef_set_hostname() {
+ local hostname="$1"
+
+ json_select_object system
+ json_add_string hostname "$hostname"
+ json_select ..
+}
+
+ucidef_set_ntpserver() {
+ local server
+
+ json_select_object system
+ json_select_array ntpserver
+ for server in "$@"; do
+ json_add_string "" "$server"
+ done
+ json_select ..
+ json_select ..
+}
+
board_config_update() {
json_init
[ -f ${CFG} ] && json_load "$(cat ${CFG})"