aboutsummaryrefslogtreecommitdiffstats
path: root/main/mqtt-exec/mqtt-exec.initd
diff options
context:
space:
mode:
Diffstat (limited to 'main/mqtt-exec/mqtt-exec.initd')
-rw-r--r--main/mqtt-exec/mqtt-exec.initd40
1 files changed, 40 insertions, 0 deletions
diff --git a/main/mqtt-exec/mqtt-exec.initd b/main/mqtt-exec/mqtt-exec.initd
new file mode 100644
index 0000000000..727ee203af
--- /dev/null
+++ b/main/mqtt-exec/mqtt-exec.initd
@@ -0,0 +1,40 @@
+#!/sbin/runscript
+
+: ${mqtt_broker:="msg.alpinelinux.org"}
+: ${mqtt_topics:="git/aports/$git_branch"}
+: ${exec_user:=nobody}
+
+command=/usr/bin/mqtt-exec
+pidfile=/var/run/$SVCNAME/mqtt-exec.pid
+
+start() {
+ local topic
+ checkpath --directory --owner ${exec_user:-nobody} ${pidfile%/*}
+ set -- -h ${mqtt_broker} -v
+ for topic in $mqtt_topics; do
+ set -- "$@" -t "$topic"
+ done
+
+ if [ -n "$will_topic" ]; then
+ set -- "$@" --will-topic "$will_topic"
+ fi
+ if yesno "$will_retained"; then
+ set -- "$@" --will-retained
+ fi
+ if [ -n "$will_payload" ]; then
+ set -- "$@" --will-payload "$will_payload"
+ fi
+ if [ -n "$will_qos" ]; then
+ set -- "$@" --will-qos "$will_qos"
+ fi
+
+ ebegin "Starting $SVCNAME"
+ start-stop-daemon --start --stdout /dev/null --stderr /dev/null \
+ --background --make-pid --user ${exec_user} \
+ --pidfile ${pidfile} \
+ --exec $command \
+ -- "$@" \
+ -- ${exec_command}
+ eend
+}
+