mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 05:54:26 -04:00 
			
		
		
		
	The enable and reset settings need to be added even when they're false. This is true at least for 'enable', that seems to default to true otherwise. Signed-off-by: Vittorio Gambaletta <openwrt@vittgam.net> SVN-Revision: 43887
		
			
				
	
	
		
			303 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			303 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/ash
 | |
| 
 | |
| CFG=/etc/board.json
 | |
| 
 | |
| . /usr/share/libubox/jshn.sh
 | |
| 
 | |
| json_select_array() {
 | |
| 	local _json_no_warning=1
 | |
| 
 | |
| 	json_select "$1"
 | |
| 	[ $? = 0 ] && return
 | |
| 
 | |
| 	json_add_array $1
 | |
| 	json_close_array
 | |
| 
 | |
| 	json_select "$1"
 | |
| }
 | |
| 
 | |
| json_select_object() {
 | |
| 	local _json_no_warning=1
 | |
| 
 | |
| 	json_select "$1"
 | |
| 	[ $? = 0 ] && return
 | |
| 
 | |
| 	json_add_object $1
 | |
| 	json_close_object
 | |
| 
 | |
| 	json_select "$1"
 | |
| }
 | |
| 
 | |
| _ucidef_set_interface() {
 | |
| 	local name=$1
 | |
| 	local iface=$2
 | |
| 
 | |
| 	json_select_object $name
 | |
| 	json_add_string ifname "${iface%%.*}"
 | |
| 	[ "$iface" = "${iface%%.*}" ] || json_add_boolean create_vlan 1
 | |
| 	json_select ..
 | |
| }
 | |
| 
 | |
| ucidef_set_interface_loopback()
 | |
| {
 | |
| 	# stub
 | |
| 	local a=$1
 | |
| }
 | |
| 
 | |
| ucidef_set_interface_lan() {
 | |
| 	local lan_if=$1
 | |
| 
 | |
| 	json_select_object network
 | |
| 	_ucidef_set_interface lan $lan_if
 | |
| 	json_select ..
 | |
| }
 | |
| 
 | |
| ucidef_set_interfaces_lan_wan() {
 | |
| 	local lan_if=$1
 | |
| 	local wan_if=$2
 | |
| 
 | |
| 	json_select_object network
 | |
| 	_ucidef_set_interface lan $lan_if
 | |
| 	_ucidef_set_interface wan $wan_if
 | |
| 	json_select ..
 | |
| }
 | |
| 
 | |
| ucidef_add_switch() {
 | |
| 	local name=$1
 | |
| 	local reset=$2
 | |
| 	local enable=$3
 | |
| 
 | |
| 	json_select_object switch
 | |
| 
 | |
| 	json_select_object $name
 | |
| 	json_add_boolean enable $enable
 | |
| 	json_add_boolean reset $reset
 | |
| 	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
 | |
| 	json_add_string $key $val
 | |
| 	json_select ..
 | |
| 
 | |
| 	json_select ..
 | |
| }
 | |
| 
 | |
| ucidef_add_switch_vlan() {
 | |
| 	local name=$1
 | |
| 	local vlan=$2
 | |
| 	local ports=$3
 | |
| 	local cpu_port=''
 | |
| 
 | |
| 	case $vlan in
 | |
| 	1)	vlan=lan;;
 | |
| 	2)	vlan=wan;;
 | |
| 	*)	vlan=vlan$vlan;;
 | |
| 	esac
 | |
| 
 | |
| 	json_select_object switch
 | |
| 	json_select_object $name
 | |
| 	json_select_object vlans
 | |
| 
 | |
| 	json_add_array $vlan
 | |
| 	for p in $ports; do
 | |
| 		if [ ${p%t} != $p ]; then
 | |
| 			cpu_port=$p
 | |
| 		else
 | |
| 			json_add_int "" $p
 | |
| 		fi
 | |
| 	done
 | |
| 	json_close_array
 | |
| 
 | |
| 	json_select ..
 | |
| 	[ -n "$cpu_port" ] && json_add_int cpu_port $cpu_port
 | |
| 	json_select ..
 | |
| 	json_select ..
 | |
| }
 | |
| 
 | |
| ucidef_set_interface_macaddr() {
 | |
| 	local network=$1
 | |
| 	local macaddr=$2
 | |
| 
 | |
| 	json_select_object network
 | |
| 
 | |
| 	json_select $network
 | |
| 	[ $? -eq 0 ] || {
 | |
| 		json_select ..
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	json_add_string macaddr $macaddr
 | |
| 	json_select ..
 | |
| 	
 | |
| 	json_select ..
 | |
| }
 | |
| 
 | |
| ucidef_set_led_netdev() {
 | |
| 	local cfg="led_$1"
 | |
| 	local name=$2
 | |
| 	local sysfs=$3
 | |
| 	local dev=$4
 | |
| 
 | |
| 	json_select_object led
 | |
| 	
 | |
| 	json_select_object $1
 | |
| 	json_add_string name $name
 | |
| 	json_add_string type netdev
 | |
| 	json_add_string sysfs $sysfs
 | |
| 	json_add_string device $dev
 | |
| 	json_select ..
 | |
| 
 | |
| 	json_select ..
 | |
| }
 | |
| 
 | |
| ucidef_set_led_interface() {
 | |
| 	local name=$1
 | |
| 	local sysfs=$2
 | |
| 
 | |
| 	json_select_object led
 | |
| 	
 | |
| 	json_select_object $1
 | |
| 	json_add_string name $name
 | |
| 	json_add_string type interface
 | |
| 	json_add_string sysfs $sysfs
 | |
| 	json_add_string interface $name
 | |
| 	json_select ..
 | |
| 
 | |
| 	json_select ..
 | |
| }
 | |
| 
 | |
| ucidef_set_led_usbdev() {
 | |
| 	local cfg="led_$1"
 | |
| 	local name=$2
 | |
| 	local sysfs=$3
 | |
| 	local dev=$4
 | |
| 
 | |
| 	json_select_object led
 | |
| 	
 | |
| 	json_select_object $1
 | |
| 	json_add_string name $name	
 | |
| 	json_add_string type usb
 | |
| 	json_add_string sysfs $sysfs
 | |
| 	json_add_string device $dev
 | |
| 	json_select ..
 | |
| 
 | |
| 	json_select ..
 | |
| }
 | |
| 
 | |
| ucidef_set_led_wlan() {
 | |
| 	local cfg="led_$1"
 | |
| 	local name=$2
 | |
| 	local sysfs=$3
 | |
| 	local trigger=$4
 | |
| 
 | |
| 	json_select_object led
 | |
| 	
 | |
| 	json_select_object $1
 | |
| 	json_add_string name $name
 | |
| 	json_add_string type trigger
 | |
| 	json_add_string sysfs $sysfs
 | |
| 	json_add_string trigger $trigger
 | |
| 	json_select ..
 | |
| 
 | |
| 	json_select ..
 | |
| }
 | |
| 
 | |
| ucidef_set_led_switch() {
 | |
| 	local cfg="led_$1"
 | |
| 	local name=$2
 | |
| 	local sysfs=$3
 | |
| 	local trigger=$4
 | |
| 	local port_mask=$5
 | |
| 
 | |
| 	json_select_object led
 | |
| 	
 | |
| 	json_select_object $1
 | |
| 	json_add_string name $name
 | |
| 	json_add_string type switch
 | |
| 	json_add_string sysfs $sysfs
 | |
| 	json_add_string trigger $trigger
 | |
| 	json_add_string port_mask $port_mask
 | |
| 	json_select ..
 | |
| 
 | |
| 	json_select ..
 | |
| }
 | |
| 
 | |
| ucidef_set_led_default() {
 | |
| 	local cfg="led_$1"
 | |
| 	local name=$2
 | |
| 	local sysfs=$3
 | |
| 	local default=$4
 | |
| 
 | |
| 	json_select_object led
 | |
| 	
 | |
| 	json_select_object $1
 | |
| 	json_add_string name $name
 | |
| 	json_add_string sysfs $sysfs
 | |
| 	json_add_string default $default
 | |
| 	json_select ..
 | |
| 
 | |
| 	json_select ..
 | |
| }
 | |
| 
 | |
| ucidef_set_led_rssi() {
 | |
| 	local cfg="led_$1"
 | |
| 	local name=$2
 | |
| 	local sysfs=$3
 | |
| 	local iface=$4
 | |
| 	local minq=$5
 | |
| 	local maxq=$6
 | |
| 	local offset=$7
 | |
| 	local factor=$8
 | |
| 
 | |
| 	json_select_object led
 | |
| 	
 | |
| 	json_select_object rssi
 | |
| 	json_select_object $1
 | |
| 	json_add_string name $name
 | |
| 	json_add_string sysfs $sysfs
 | |
| 	json_add_string minq $minq
 | |
| 	json_add_string maxq $maxq
 | |
| 	json_add_string offset $offset
 | |
| 	json_add_string factor $factor
 | |
| 	json_select ..
 | |
| 	json_select ..
 | |
| 
 | |
| 	json_select ..
 | |
| }
 | |
| 
 | |
| ucidef_set_rssimon() {
 | |
| 	local dev="$1"
 | |
| 	local refresh="$2"
 | |
| 	local threshold="$3"
 | |
| 
 | |
| 	json_select_object led
 | |
| 	
 | |
| 	json_select_object rssi
 | |
| 	json_add_string type rssi
 | |
| 	json_add_string dev $dev
 | |
| 	json_add_string threshold $threshold
 | |
| 	json_select ..
 | |
| 
 | |
| 	json_select ..
 | |
| 	
 | |
| }
 | |
| 
 | |
| board_config_update() {
 | |
| 	json_init
 | |
| 	[ -f ${CFG} ] && json_load "$(cat ${CFG})"
 | |
| }
 | |
| 
 | |
| board_config_flush() {
 | |
| 	json_dump -i > /tmp/.board.json
 | |
| 	mv /tmp/.board.json ${CFG}
 | |
| }
 |