[base-files] shell-scripting: fix wrong usage of '==' operator normally the '==' is used for invoking a regex parser and is a bashism. all of the fixes just want to compare a string. the used busybox-ash will silently "ignore" this mistake, but make it portable/clean at least. this patch does not change the behavior/logic of the scripts. Signed-off-by: Bastian Bittorf <bittorf@bluebottle.com> SVN-Revision: 42911
		
			
				
	
	
		
			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
 | 
						|
	[ "$enable" -eq 1 ] && json_add_boolean enable 1
 | 
						|
	[ "$reset" -eq 1 ] && json_add_boolean reset 1
 | 
						|
	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}
 | 
						|
}
 |