#!/bin/sh

# check if wireguard
if [ "${DEVTYPE}" != "wireguard" ]; then
	exit 0
fi

# check if correct naming
slicedint=$(echo $INTERFACE | cut -c1-3)
if [ "${slicedint}" != "wg_" ]; then
	exit 0
fi

if [ "${ACTION}" == "add" ]; then
	uci add olsrd Interface
	uci set olsrd.@Interface[-1].ignore=0
	uci set olsrd.@Interface[-1].interface="${INTERFACE}"
	uci set olsrd.@Interface[-1].Mode="ether"
	uci get wgserver.@olsrd_hotplug[0].LinkQualityMult
	if [ $? ]; then
		olsrd_LinkQualityMult="$(uci get wgserver.@olsrd_hotplug[0].LinkQualityMult)"
		uci set olsrd.@Interface[-1].LinkQualityMult="$olsrd_LinkQualityMult"
	fi
	uci -c "$(dirname $(realpath /etc/config/olsrd))" commit olsrd
	/etc/init.d/olsrd reload
fi

if [ "${ACTION}" == "remove" ]; then
	i=0
	while uci get olsrd.@Interface[$i] &> /dev/null ; do
		if [ "$(uci get olsrd.@Interface[$i].interface)" == "${INTERFACE}" ]; then
			uci delete olsrd.@Interface[$i]
		fi
		i=$((i+1));
	done
	uci -c "$(dirname $(realpath /etc/config/olsrd))" commit olsrd
	/etc/init.d/olsrd reload
fi
