aboutsummaryrefslogtreecommitdiffstats
path: root/main/mqtt-exec/mqtt-exec.initd
blob: f69781d8b8c53828837f7ff640f4fc62da92caa1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/sbin/openrc-run

: ${command_user:="${exec_user:-nobody}"}
: ${mqtt_broker:="msg.alpinelinux.org"}
: ${mqtt_topics:="git/aports/$git_branch"}

command="/usr/bin/mqtt-exec"
command_background="yes"
pidfile="/run/$RC_SVCNAME/mqtt-exec.pid"
supervise_daemon_args="--stdout /dev/null --stderr /dev/null"

depend() {
	need localmount net
	after firewall
}

start_pre() {
	checkpath --directory --owner "${command_user:-nobody}" "${pidfile%/*}"

	set -- $command_args -h ${mqtt_broker} -v
	local topic; for topic in $mqtt_topics; do
		 set -- "$@" -t "$topic"
	done

	if [ -n "$will_topic" ]; then
		set -- "$@" --will-topic "$will_topic"
	fi
	if yesno "$will_retain"; then
		set -- "$@" --will-retain
	fi
	if [ -n "$will_payload" ]; then
		set -- "$@" --will-payload "$will_payload"
	fi
	if [ -n "$will_qos" ]; then
		set -- "$@" --will-qos "$will_qos"
	fi
	if [ -n "$mqtt_user" ]; then
		set -- "$@" --username "$mqtt_user"
	fi

	set -- "$@" -- ${exec_command}

	command_args="$@"
}