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
121 json_select_object switch
122 json_select_object
"$name"
123 json_select_array ports
134 role
="${port#[0-9]*:}"; role
="${role%:*}"
142 if [ -n "$num" ] && [ -n "$dev$role" ]; then
144 json_add_int num
"$num"
145 [ -n "$dev" ] && json_add_string device
"$dev"
146 [ -n "$role" ] && json_add_string role
"$role"
147 [ -n "$idx" ] && json_add_int index
"$idx"
151 unset num dev role idx
159 ucidef_add_switch_port_attr
() {
166 json_select_object switch
167 json_select_object
"$name"
169 json_get_keys ports ports
170 json_select_array ports
176 if [ -n "$num" ] && [ $num -eq $port ]; then
177 json_select_object attr
180 [0-9]) json_add_int
"$key" "$val" ;;
181 *) json_add_string
"$key" "$val" ;;
195 ucidef_add_switch_vlan
() {
207 json_select_object switch
208 json_select_object
"$name"
209 json_select_object vlans
211 json_add_array
"$vlan"
213 if [ ${p%t} != $p ]; then
222 [ -n "$cpu_port" ] && json_add_int cpu_port
"$cpu_port"
227 ucidef_set_interface_macaddr
() {
231 json_select_object network
233 json_select
"$network"
239 json_add_string macaddr
"$macaddr"
245 ucidef_set_led_netdev
() {
251 json_select_object led
253 json_select_object
"$1"
254 json_add_string name
"$name"
255 json_add_string
type netdev
256 json_add_string sysfs
"$sysfs"
257 json_add_string device
"$dev"
263 ucidef_set_led_usbdev
() {
269 json_select_object led
271 json_select_object
"$1"
272 json_add_string name
"$name"
273 json_add_string
type usb
274 json_add_string sysfs
"$sysfs"
275 json_add_string device
"$dev"
281 ucidef_set_led_wlan
() {
287 json_select_object led
289 json_select_object
"$1"
290 json_add_string name
"$name"
291 json_add_string
type trigger
292 json_add_string sysfs
"$sysfs"
293 json_add_string trigger
"$trigger"
299 ucidef_set_led_switch
() {
306 json_select_object led
308 json_select_object
"$1"
309 json_add_string name
"$name"
310 json_add_string
type switch
311 json_add_string sysfs
"$sysfs"
312 json_add_string trigger
"$trigger"
313 json_add_string port_mask
"$port_mask"
319 ucidef_set_led_default
() {
325 json_select_object led
327 json_select_object
"$1"
328 json_add_string name
"$name"
329 json_add_string sysfs
"$sysfs"
330 json_add_string default
"$default"
336 ucidef_set_led_gpio
() {
343 json_select_object led
345 json_select_object
"$1"
346 json_add_string
type gpio
347 json_add_string name
"$name"
348 json_add_string sysfs
"$sysfs"
349 json_add_string trigger
"$trigger"
350 json_add_int gpio
"$gpio"
351 json_add_boolean inverted
"$inverted"
357 ucidef_set_led_rssi
() {
367 json_select_object led
369 json_select_object
"$1"
370 json_add_string
type rssi
371 json_add_string name
"$name"
372 json_add_string iface
"$iface"
373 json_add_string sysfs
"$sysfs"
374 json_add_string minq
"$minq"
375 json_add_string maxq
"$maxq"
376 json_add_string offset
"$offset"
377 json_add_string
factor "$factor"
383 ucidef_set_rssimon
() {
388 json_select_object rssimon
390 json_select_object
"$dev"
391 [ -n "$refresh" ] && json_add_int refresh
"$refresh"
392 [ -n "$threshold" ] && json_add_int threshold
"$threshold"
399 board_config_update
() {
401 [ -f ${CFG} ] && json_load
"$(cat ${CFG})"
404 board_config_flush
() {
405 json_dump
-i > /tmp
/.board.json
406 mv /tmp
/.board.json
${CFG}