#!/bin/sh
# check if we are on real system
if [ -z "${IPKG_INSTROOT}" ]; then
	ZAPRET_CONFIG=/opt/zapret/config
	ZAPRET_CONFIG_DEF="/opt/zapret/config.default"
	# creating main config if its not exists
	if [ ! -f "${ZAPRET_CONFIG}" ]; then
		cp -f "${ZAPRET_CONFIG_DEF}" "${ZAPRET_CONFIG}"
	fi
	# check obsolete format for main config
	if grep -qE "^NFQWS_OPT_DESYNC=|^MODE_HTTP=|^MODE_HTTPS=|^MODE_QUIC=|^MODE=" "${ZAPRET_CONFIG}" ; then
		echo "Detect obsolute format for main config!"
		ZAPRET_CONFIG_BACKUP="${ZAPRET_CONFIG}.backup"
		cp -f "${ZAPRET_CONFIG}" "${ZAPRET_CONFIG_BACKUP}"
		echo "Current file ${ZAPRET_CONFIG} backuped to ${ZAPRET_CONFIG_BACKUP}"
		cp -f "${ZAPRET_CONFIG_DEF}" "${ZAPRET_CONFIG}"
	fi
	# check existing uci-config
	[ -f "/etc/config/zapret" ] && ZAPRET_CFG_EXISTS=1 || ZAPRET_CFG_EXISTS=0
	# create or merge uci-config
	/opt/zapret/uci-def-cfg.sh
	[ "${ZAPRET_CFG_EXISTS}" = "1" ] && echo "Config /etc/config/zapret merged with default uci-config"
	# remove uci-default script from system dir (used into /etc/init.d/boot)
	rm -f /etc/uci-defaults/zapret-uci-def-cfg.sh
	# copy (sync) all params from uci-config to main config
	/opt/zapret/sync_config.sh
	# check main config
	sh -n "${ZAPRET_CONFIG}" 2>/dev/null || cp -f "${ZAPRET_CONFIG_DEF}" "${ZAPRET_CONFIG}"
	sh -n "${ZAPRET_CONFIG}" 2>/dev/null || exit 58
	# enable main service
	/etc/init.d/zapret enable
	# stop all
	/etc/init.d/zapret stop_fw
	/etc/init.d/zapret stop_daemons
	ps w | grep '/opt/zapret/nfq/nfqws' | grep -v grep | awk '{print $1}' | xargs -r kill -9
	# start main service
	/etc/init.d/zapret start
	# restart firewall
	[ -x /sbin/fw4 ] && fw4 -q restart || fw3 -q restart
fi
exit 0
