#!/bin/sh
[ ! -f "/usr/share/ucitrack/luci-app-linkease.json" ] && {
    cat > /usr/share/ucitrack/luci-app-linkease.json << EEOF
{
    "config": "linkease",
    "init": "linkease"
}
EEOF
}

if ! uci -q get linkease.@linkease[0] >/dev/null; then
	uci -q add linkease linkease >/dev/null
fi

set_default() {
	key="$1"
	value="$2"
	current="$(uci -q get "linkease.@linkease[0].$key" 2>/dev/null || true)"
	[ -n "$current" ] && return 0
	uci -q set "linkease.@linkease[0].$key=$value"
}

set_default enabled 1
set_default port 8897
set_default allowPublic 0
uci -q commit linkease
port="$(uci -q get linkease.@linkease[0].port 2>/dev/null || true)"
[ -n "$port" ] || port=8897
allow_public="$(uci -q get linkease.@linkease[0].allowPublic 2>/dev/null || true)"

uci -q batch <<-EOF >/dev/null
	delete ucitrack.@linkease[-1]
	add ucitrack linkease
	set ucitrack.@linkease[-1].init=linkease
	commit ucitrack
EOF

if [ "$allow_public" = "1" ]; then
	uci -q batch <<-EOF >/dev/null
	delete firewall.linkease
	set firewall.linkease=rule
	set firewall.linkease.name="linkease"
	set firewall.linkease.target="ACCEPT"
	set firewall.linkease.src="wan"
	set firewall.linkease.proto="tcp"
	set firewall.linkease.dest_port="$port"
	commit firewall
EOF
else
	uci -q batch <<-EOF >/dev/null
	delete firewall.linkease
	commit firewall
EOF
fi

/etc/init.d/linkease enable
/etc/init.d/linkease restart

exit 0
