#!/bin/sh

board_name() {
	[ -e /tmp/sysinfo/board_name ] && cat /tmp/sysinfo/board_name || echo "generic"
}

	wifi_setup_radio(){
	local radio=$1
	htmode="$(uci -q get wireless.${radio}.htmode)"
	if uci -q get wireless.${radio} >/dev/null; then
			uci -q del wireless.${radio}.disabled
			uci -q set wireless.${radio}.country='CN'
		
		if [ "$(uci -q get wireless.${radio}.band)" = "5g" ]; then
			uci -q set wireless.default_${radio}.ssid="${SSID}_5G"
			if [[ "$DISTRIB_TARGET" == *ipq60xx ]]; then
				uci set wireless.${radio}.htmode='HE80'
			fi
		elif [ "$(uci -q get wireless.${radio}.band)" = "2g" ]; then
			uci -q set wireless.default_${radio}.ssid="${SSID}_2.4G"
		fi
			uci -q set wireless.default_${radio}.device="${radio}"
			SSID_PASSWD="${SSID_PASSWD:-$(uci -q get wireless.default_${radio}.key)}"
			if [ "${SSID_PASSWD}" ]; then
				uci -q set wireless.default_${radio}.encryption='psk2'
				uci -q set wireless.default_${radio}.key="${SSID_PASSWD}"
			else
				uci -q set wireless.default_${radio}.encryption='none'
			fi
	fi
	}

for i in $(seq 1 10); do
		[[ "$(uci -q get base_config.@status[0].inited)" == 1 && "$(cat /etc/config/wireless)" ]] && break
		[ "$(cat /etc/config/wireless)" ] || /sbin/wifi config
		sleep 1s
done

	if [[ "$(cat /etc/config/wireless)" ]]; then
		. /etc/openwrt_release
		SSID="$(uci -q get wizard.default.wifi_ssid || uci -q get system.@system[0].hostname || echo Kwrt)"
		SSID_PASSWD="$(uci -q get wizard.default.wifi_key)"
		sed -i '/option disabled/d' /etc/config/wireless

		[ "$(uci -q get wireless.radio1.band)" == "5g" ] && uci -q set wireless.radio0.band="2g"
		widx=0
		while uci rename wireless.@wifi-iface[$widx]=default_radio$widx >/dev/null 2>&1; do widx=$((widx+1)); done
		for radio in radio0 radio1 radio2 radio3; do
			wifi_setup_radio ${radio}
		done
		uci commit wireless
		uci -q set base_config.@status[0].wifi=1
		uci commit base_config
		/sbin/wifi reload
	fi
