#! /bin/bash
# /etc/init.d/browser-cmd

### BEGIN INIT INFO
# Provides: Browser Command server
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Browser Command server daemon
# Description: Starts and stops the Browser Command server
### END INIT INFO

PIDFILE="/var/run/browser-cmd.pid"

function start-server
{
	bpid=$(cat "$PIDFILE" 2> /dev/null)
	if kill -0 "$bpid" &> /dev/null
	then
		echo "browser-cmd server is already running"
		return 0
	fi

	browser-cmd-server --quiet &
	bpid=$!
	echo "$bpid" > "$PIDFILE"
	disown

	sleep 1.0s

	if ! kill -0 "$bpid" &> /dev/null
	then
		rm -rf "$PIDFILE"
		return 1
	fi

	return 0
}

function stop-server
{
	bpid=$(cat "$PIDFILE" 2> /dev/null)
	if ! kill -0 "$bpid" &> /dev/null
	then
		echo "browser-cmd server is not running"
		return 0
	fi

	kill -15 "$bpid"
	if kill -0 "$bpid" &> /dev/null
	then
		sleep 1.0s
		if kill -0 "$bpid" $> /dev/null
		then
			kill -9 "$bpid"
		fi
	fi

	rm -rf "$PIDFILE"

	return 0
}


if [ "$1" == "start" ]
then
	start-server
	exit $?
elif [ "$1" == "stop" ]
then
	stop-server
	exit $?
elif [ "$1" == "restart" ]
then
	stop-server
	start-server
	exit $?
elif [ -n "$1" ]
then
	echo "invalid command $1"
	exit 1
else
	echo "you must enter a command"
	exit 1
fi
