5 .
/usr
/share
/libubox
/jshn.sh
8 local _json_no_warning
=1
19 json_select_object
() {
20 local _json_no_warning
=1
31 _ucidef_set_interface
() {
35 json_select_object
"$name"
36 json_add_string ifname
"${iface%%.*}"
37 [ "$iface" = "${iface%%.*}" ] || json_add_boolean create_vlan
1
41 ucidef_set_board_id
() {
42 json_select_object model
43 json_add_string id
"$1"
47 ucidef_set_model_name
() {
48 json_select_object model
49 json_add_string name
"$1"
53 ucidef_set_interface_loopback
()
59 ucidef_set_interface_lan
() {
62 json_select_object network
63 _ucidef_set_interface lan
"$lan_if"
67 ucidef_set_interface_wan
() {
70 json_select_object network
71 _ucidef_set_interface wan
"$wan_if"
75 ucidef_set_interfaces_lan_wan
() {
79 json_select_object network
80 _ucidef_set_interface lan
"$lan_if"
81 _ucidef_set_interface wan
"$wan_if"
90 json_select_object switch
92 json_select_object
"$name"
93 json_add_boolean
enable "$enable"
94 json_add_boolean
reset "$reset"
100 ucidef_add_switch_attr
() {
105 json_select_object switch
106 json_select_object
"$name"
109 [0-9]) json_add_int
"$key" "$val" ;;
110 *) json_add_string
"$key" "$val" ;;
117 ucidef_add_switch_ports
() {
118 local name
="$1"; shift
119 local port num role dev idx tag
121 json_select_object switch
122 json_select_object
"$name"
123 json_select_array ports
131 [ "${num%t}" != "$num" ] && {
139 role
="${port#[0-9]*:}"; role
="${role%:*}"
147 if [ -n "$num" ] && [ -n "$dev$role" ]; then
149 json_add_int num
"$num"
150 [ -n "$dev" ] && json_add_string device
"$dev"
151 [ -n "$tag" ] && json_add_boolean need_tag
"$tag"
152 [ -n "$role" ] && json_add_string role
"$role"
153 [ -n "$idx" ] && json_add_int index
"$idx"
157 unset num dev role idx tag
165 ucidef_add_switch_port_attr
() {
172 json_select_object switch
173 json_select_object
"$name"
175 json_get_keys ports ports
176 json_select_array ports
182 if [ -n "$num" ] && [ $num -eq $port ]; then
183 json_select_object attr
186 [0-9]) json_add_int
"$key" "$val" ;;
187 *) json_add_string
"$key" "$val" ;;
201 ucidef_add_switch_vlan
() {
213 json_select_object switch
214 json_select_object
"$name"
215 json_select_object vlans
217 json_add_array
"$vlan"
219 if [ ${p%t} != $p ]; then
228 [ -n "$cpu_port" ] && json_add_int cpu_port
"$cpu_port"
233 ucidef_set_interface_macaddr
() {
237 json_select_object network
239 json_select
"$network"
245 json_add_string macaddr
"$macaddr"
251 ucidef_set_led_netdev
() {
257 json_select_object led
259 json_select_object
"$1"
260 json_add_string name
"$name"
261 json_add_string
type netdev
262 json_add_string sysfs
"$sysfs"
263 json_add_string device
"$dev"
269 ucidef_set_led_usbdev
() {
275 json_select_object led
277 json_select_object
"$1"
278 json_add_string name
"$name"
279 json_add_string
type usb
280 json_add_string sysfs
"$sysfs"
281 json_add_string device
"$dev"
287 ucidef_set_led_wlan
() {
293 json_select_object led
295 json_select_object
"$1"
296 json_add_string name
"$name"
297 json_add_string
type trigger
298 json_add_string sysfs
"$sysfs"
299 json_add_string trigger
"$trigger"
305 ucidef_set_led_switch
() {
312 json_select_object led
314 json_select_object
"$1"
315 json_add_string name
"$name"
316 json_add_string
type switch
317 json_add_string sysfs
"$sysfs"
318 json_add_string trigger
"$trigger"
319 json_add_string port_mask
"$port_mask"
325 ucidef_set_led_default
() {
331 json_select_object led
333 json_select_object
"$1"
334 json_add_string name
"$name"
335 json_add_string sysfs
"$sysfs"
336 json_add_string default
"$default"
342 ucidef_set_led_gpio
() {
349 json_select_object led
351 json_select_object
"$1"
352 json_add_string
type gpio
353 json_add_string name
"$name"
354 json_add_string sysfs
"$sysfs"
355 json_add_string trigger
"$trigger"
356 json_add_int gpio
"$gpio"
357 json_add_boolean inverted
"$inverted"
363 ucidef_set_led_rssi
() {
373 json_select_object led
375 json_select_object
"$1"
376 json_add_string
type rssi
377 json_add_string name
"$name"
378 json_add_string iface
"$iface"
379 json_add_string sysfs
"$sysfs"
380 json_add_string minq
"$minq"
381 json_add_string maxq
"$maxq"
382 json_add_string offset
"$offset"
383 json_add_string
factor "$factor"
389 ucidef_set_rssimon
() {
394 json_select_object rssimon
396 json_select_object
"$dev"
397 [ -n "$refresh" ] && json_add_int refresh
"$refresh"
398 [ -n "$threshold" ] && json_add_int threshold
"$threshold"
405 board_config_update
() {
407 [ -f ${CFG} ] && json_load
"$(cat ${CFG})"
410 board_config_flush
() {
411 json_dump
-i > /tmp
/.board.json
412 mv /tmp
/.board.json
${CFG}