#!/bin/sh

DAEMON="netopeer2-server"
PIDFILE="/var/run/$DAEMON.pid"

NETOPEER2_SERVER_ARGS=""

start() {
	printf 'Starting %s: ' "$DAEMON"

	start-stop-daemon -S -b -q -p $PIDFILE -x "/usr/bin/$DAEMON" \
		-- $NETOPEER2_SERVER_ARGS
	status=$?
	if [ "$status" -eq 0 ]; then
		echo "OK"
	else
		echo "FAIL"
	fi
	return "$status"
}

stop() {
	printf 'Stopping %s: ' "$DAEMON"
	start-stop-daemon -K -q -p $PIDFILE
	status=$?
	if [ "$status" -eq 0 ]; then
		echo "OK"
	else
		echo "FAIL"
	fi
	return "$status"
}

restart() {
	stop
	sleep 1
	start
}

reload() {
	# we do not support real reload .. just restart
	restart
}

case "$1" in
	start|stop|restart|reload)
		"$1";;
	*)
		echo "Usage: $0 {start|stop|restart|reload}"
esac
