define Package/wg-installer-server
$(call Package/wg-installer/Default)
TITLE+= (server)
+ MENU:=1
DEPENDS:=+rpcd +uhttpd +uhttpd-mod-ubus +owipcalc
endef
fi
endef
+define Package/wg-installer-server-hotplug-babeld
+ $(call Package/wg-installer-server)
+ DEPENDS:=wg-installer-server
+endef
+
+define Package/wg-installer-server-hotplug-babeld/install
+ $(INSTALL_DIR) $(1)/etc/hotplug.d/net/
+ $(INSTALL_BIN) ./wg-server/hotplug.d/99-mesh-babeld $(1)/etc/hotplug.d/net/99-mesh-babeld
+endef
+
define Package/wg-installer-client
$(call Package/wg-installer/Default)
TITLE+= (client)
endef
$(eval $(call BuildPackage,wg-installer-server))
+$(eval $(call BuildPackage,wg-installer-server-hotplug-babeld))
$(eval $(call BuildPackage,wg-installer-client))
Register Tunnel Interface
wg-client-installer register --ip 127.0.0.1 --user wginstaller --password wginstaller --bandwidth 10
+
+## Hotplugs
+
+- wg-installer-server-hotplug-babeld: mesh automatically via wireguard with babeld
--- /dev/null
+#!/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 babeld interface
+ uci set babeld.@interface[-1].ifname="${INTERFACE}"
+ uci commit
+ /etc/init.d/babeld reload
+fi
+
+if [ "${ACTION}" == "remove" ]; then
+ i=0
+ while uci get babeld.@interface[$i] &> /dev/null ; do
+ if [ "$(uci get babeld.@interface[$i].ifname)" == "${INTERFACE}" ]; then
+ uci delete babeld.@interface[$i]
+ fi
+ i=$((i+1));
+ done
+ uci commit
+ /etc/init.d/babeld reload
+fi