aboutsummaryrefslogtreecommitdiffstats
path: root/main/mqtt-exec/mqtt-exec.initd
blob: c9d4e941cb914d75901053646154005eb2ca0f2b (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
45
#!/sbin/openrc-run

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

command=/usr/bin/mqtt-exec
command_user="${exec_user:-nobody}"
pidfile=/run/$SVCNAME/mqtt-exec.pid
supervisor=supervise-daemon
supervise_daemon_args="--stdout /dev/null --stderr /dev/null"

depend() {
	need localmount net
	after firewall
}

start_pre() {
	checkpath --directory --owner ${exec_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="$@"
}