summaryrefslogtreecommitdiff
blob: b48c20cbeb12786b0e482d0e32c19336e3988207 (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
#!/sbin/openrc-run
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

depend() {
	need roscore
}

checkconfig() {
	[ -f "${ROSLAUNCH_FILE}" ]
	eend $? "You need to define ROSLAUNCH_FILE and point it to a correct location (${ROSLAUNCH_FILE} does not exist)"
}

start() {
	checkconfig || exit 1
	ebegin "Waiting for roscore"

	val=${ROS_MASTER_URI#http://}
	dest=$(echo ${val%/} | tr ':' ' ')
	while ! echo exit | nc ${dest} &> /dev/null; do sleep 1; done

	ebegin "Starting ROS via roslaunch"
	start-stop-daemon --start \
		--user ros --group ros \
		-m --pidfile /var/run/roslaunch.pid \
		--exec "/usr/bin/roslaunch" --background \
		-- ${ROSLAUNCH_FILE}
	eend $? "Failed to start ROS"
}

stop() {
	ebegin "Stopping roslaunch"
	start-stop-daemon --stop \
		--pidfile /var/run/roslaunch.pid \
		--exec "/usr/bin/roslaunch"
	eend $? "Failed to stop roslaunch"
}