diff --git a/.gitignore b/.gitignore index 958a039..4cc1b26 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ .vscode/ monitor -node-whisperer +./node-whisperer diff --git a/openwrt/node-whisperer/Makefile b/openwrt/node-whisperer/Makefile new file mode 100644 index 0000000..7bf49c0 --- /dev/null +++ b/openwrt/node-whisperer/Makefile @@ -0,0 +1,38 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=node-whisperer +PKG_VERSION:=1 +PKG_RELEASE:=2 + +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/package-defaults.mk + +define Build/Prepare + mkdir -p $(PKG_BUILD_DIR) + cp -r $(CURDIR)/../../src $(PKG_BUILD_DIR)/ +endef + +MAKE_PATH:=src +MAKE_VARS += \ + NL_LIB="libnl-tiny" \ + NL_GENL_LIB="libnl-tiny" + +define Package/node-whisperer + SECTION:=net + CATEGORY:=Network + DEPENDS:=+libubox +libubus +libblobmsg-json +libnl-tiny +libbatadv +libgluonutil + TITLE:=Daemon for Gluon diagnostic using 802.11 beacon frames +endef + +define Package/node-whisperer/conffiles +/etc/config/node-whisperer +endef + +define Package/node-whisperer/install + $(INSTALL_DIR) $(1)/usr/bin $(1)/etc/init.d $(1)/etc/config + $(CP) $(PKG_BUILD_DIR)/src/node-whisperer $(1)/usr/bin + $(INSTALL_BIN) ./files/node-whisperer.init $(1)/etc/init.d/node-whisperer + $(CP) ./files/node-whisperer.uci $(1)/etc/config/node-whisperer +endef + +$(eval $(call BuildPackage,node-whisperer)) diff --git a/openwrt/node-whisperer/files/node-whisperer.init b/openwrt/node-whisperer/files/node-whisperer.init new file mode 100644 index 0000000..368f28a --- /dev/null +++ b/openwrt/node-whisperer/files/node-whisperer.init @@ -0,0 +1,30 @@ +#!/bin/sh /etc/rc.common +# Copyright (C) 2024 David Bauer + +START=95 +USE_PROCD=1 + +NAME=node-whisperer +PROG=/usr/bin/gluon-diagnostic + +. /lib/functions.sh + +reload_service() { + restart_service +} + +service_triggers() { + procd_add_reload_trigger node-whisperer +} + +start_service() +{ + ENABLED="$(uci -q get node-whisperer.settings.enabled)" + ENABLED="${ENABLED:-1}" + + [ "$ENABLED" -gt 0 ] || return + + procd_open_instance + procd_set_param command "$PROG" + procd_close_instance +} diff --git a/openwrt/node-whisperer/files/node-whisperer.uci b/openwrt/node-whisperer/files/node-whisperer.uci new file mode 100644 index 0000000..3f93d7f --- /dev/null +++ b/openwrt/node-whisperer/files/node-whisperer.uci @@ -0,0 +1,9 @@ + +config node-whisperer 'node-whisperer' + option enabled '1' + list information 'node_id' + list information 'hostname' + list information 'uptime' + list information 'site_code' + list information 'domain' + list information 'batman_adv'