u2pnpd: add new package

u²pnpd announces a device as UPnP basic device on the
network so that an user could easily find it. It tries
to detect various system information automatically, however
everything can be overridden by UCI settings.

Signed-off-by: Michael Heimpold <mhei@heimpold.de>
This commit is contained in:
Michael Heimpold
2015-10-01 23:45:47 +02:00
parent a8c37348b2
commit 31e6a7832a
4 changed files with 146 additions and 0 deletions
+62
View File
@@ -0,0 +1,62 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2015 OpenWrt.org
START=50
STOP=20
SERVICE_DAEMONIZE=1
SERVICE_PID_FILE=/var/run/u2pnpd.pid
SERVICE_USE_PID=1
SERVICE_WRITE_PID=1
start_instance() {
local section="$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
[ "$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"
}
start() {
config_load 'u2pnpd'
config_foreach start_instance 'u2pnpd'
}
stop() {
config_load 'u2pnpd'
config_foreach stop_instance 'u2pnpd'
}