net/u2pnpd: convert init to procd
authorKarl Palsson <karlp@etactica.com>
Thu, 20 Aug 2020 11:40:28 +0000 (11:40 +0000)
committerMichael Heimpold <mhei@heimpold.de>
Sun, 23 Aug 2020 20:52:31 +0000 (22:52 +0200)
Drops pid files, no longer needed with procd management.
Now properly reloads on reload_config after UCI changes.

Signed-off-by: Karl Palsson <karlp@etactica.com>
[ Fixed two shellcheck warnings and bump PKG_RELEASE ]
Signed-off-by: Michael Heimpold <mhei@heimpold.de>
net/u2pnpd/Makefile
net/u2pnpd/files/u2pnpd.init

index d0f41d47a0de3e468efac23efa51339e54280c94..729d2990fe136fa42134631ad3ba9576fadd6efd 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=u2pnpd
 PKG_VERSION:=0.5
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://github.com/mhei/u2pnpd/releases/download/v$(PKG_VERSION)
index 01437fd51e28705053829bc2f05908bd4dec29ab..6f5185b8b0f6cfad85e7c64294823b6bc9e2a20f 100644 (file)
@@ -3,60 +3,47 @@
 
 START=50
 STOP=20
-
-SERVICE_DAEMONIZE=1
-SERVICE_PID_FILE=/var/run/u2pnpd.pid
-SERVICE_USE_PID=1
-SERVICE_WRITE_PID=1
+USE_PROCD=1
+
+append_arg() {
+       local cfg="$1"
+       local opt="$2"
+       local var="$3"
+       local def="$4"
+       local val
+       config_get val "$cfg" "$var"
+       [ -n "$val" ] || [ -n "$def" ] && procd_append_param command "$opt" "${val:-$def}"
+}
 
 start_instance() {
-       local section="$1"
+       local cfg="$1"
        local enabled
-       local interface manufacturer manufacturerURL modelDescription
-       local modelName modelNumber modelURL serialNumber friendlyName
-       local uuid httpsURL
-       local i
 
-       config_get_bool enabled "$section" 'enabled' 1
+       config_get_bool enabled "$cfg" 'enabled' 1
        [ "$enabled" -gt 0 ] || return 0
 
-       for i in interface httpsURL manufacturer manufacturerURL modelDescription \
-                modelName modelNumber modelURL serialNumber friendlyName uuid; do
-               config_get "$i" "$section" "$i"
-       done
-
-       [ -n "$interface" ] && SERVICE_PID_FILE="/var/run/u2pnpd.$interface.pid"
-
-       service_start /usr/bin/u2pnpd ${httpsURL:+-s} \
-           ${interface:+--interface="$interface"} \
-           ${manufacturer:+--manufacturer="$manufacturer"} \
-           ${manufacturerURL:+--manufacturerURL="$manufacturerURL"} \
-           ${modelDescription:+--modelDescription="$modelDescription"} \
-           ${modelName:+--modelName="$modelName"} \
-           ${modelNumber:+--modelNumber="$modelNumber"} \
-           ${modelURL:+--modelURL="$modelURL"} \
-           ${serialNumber:+--serialNumber="$serialNumber"} \
-           ${friendlyName:+--friendlyName="$friendlyName"} \
-           ${uuid:+--uuid="$uuid"}
-}
-
-stop_instance() {
-       local section="$1"
-       local interface
-
-       config_get interface "$section" 'interface'
-       [ -n "$interface" ] && SERVICE_PID_FILE="/var/run/u2pnpd.$interface.pid"
-
-       service_stop /usr/bin/u2pnpd
-       rm -f "$SERVICE_PID_FILE"
+       procd_open_instance
+       procd_set_param command /usr/bin/u2pnpd
+       append_arg "$cfg" -s httpsURL
+       append_arg "$cfg" --interface interface
+       append_arg "$cfg" --manufacturer manufacturer
+       append_arg "$cfg" --manufacturerURL manufacturerURL
+       append_arg "$cfg" --modelDescription modelDescription
+       append_arg "$cfg" --modelName modelName
+       append_arg "$cfg" --modelNumber modelNumber
+       append_arg "$cfg" --modelURL modelURL
+       append_arg "$cfg" --serialNumber serialNumber
+       append_arg "$cfg" --friendlyName friendlyName
+       append_arg "$cfg" --uuid uuid
+       procd_set_param file /etc/config/u2pnpd
+       procd_set_param respawn
+       procd_close_instance
 }
 
-start() {
-       config_load 'u2pnpd'
-       config_foreach start_instance 'u2pnpd'
+start_service() {
+       config_load u2pnpd && config_foreach start_instance u2pnpd
 }
 
-stop() {
-       config_load 'u2pnpd'
-       config_foreach stop_instance 'u2pnpd'
+service_triggers() {
+       procd_add_reload_trigger u2pnpd
 }