#
# Copyright (C) 2009 OpenWrt.org
#

sync_uboot_env() {
	local fenv_region=`fw_printenv fenv_region | awk -F = '{print $2;}'`
	local region=`envctl factory get region`

	echo "factory region is $region, Sync uboot env"
	if [ -n "$fenv_region" ] && [ "$fenv_region" != "$region" ]; then
		echo "Sync uboot env fenv_region $fenv_region to factory env"
		envctl factory set region $fenv_region
	fi

	local fenv_restore=`fw_printenv fenv_restore | awk -F = '{print $2;}'`
	if [ -n "$fenv_restore" ] && [ "$fenv_restore" == "yes" ]; then
		echo "uboot env fenv_restore is yes"
		local fenv_model=`fw_printenv fenv_model | awk -F = '{print $2;}'`
		local model=`envctl factory get model`
		if [ -n "$fenv_model" ] && [ "$fenv_model" != "$model" ]; then
			echo "Sync uboot env fenv_model $fenv_model to factory env"
			envctl factory set model $fenv_model
		fi
		echo "fenv_restore is yes, need restore"
		touch /tmp/.restore
		cp -rf /rom/etc/config/* /etc/config/
		cp -rf /rom/etc/wireless/mediatek/mt7981.dbdc.b0.dat /etc/wireless/mediatek/
		cp -rf /rom/etc/wireless/mediatek/mt7981.dbdc.b1.dat /etc/wireless/mediatek/
		local newmodel=$(echo `envctl factory get model`)
		if [ -n "$newmodel" ] && [ "$newmodel" != "EAX17" ]; then
			cp -rf /rom/cfg/$newmodel/* /etc/config/
			if [ "$newmodel" == "EAX11v3" ] || [ "$newmodel" == "EAX12v2" ]; then
				envctl factory set axmodel AX1600 
			elif [ "$newmodel" == "EAX14v3" ] || [ "$newmodel" == "EAX15v3" ]; then
				envctl factory set axmodel AX1800 
			fi
		else
				envctl factory set axmodel AX3000
		fi
		fw_setenv fenv_restore no
	fi
}

boot_hook_add preinit_main sync_uboot_env
