#!/bin/sh
### BEGIN INIT INFO
# Provides:          bzflag
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Init script for bzflag-server
# Description:       Init script for bzflag-server
### END INIT INFO

ACTION="${1}"

NAME="bzflag"
DESC="BZFlag game server"
PIDFILE="/run/bzflag/game.pid"
LOGFILE="/var/log/bzflag/game.log"
BINARY="/usr/games/bzfs"

test -x ${BINARY} || exit 0

. /lib/lsb/init-functions

# Default to a free-for-all server which does not advertise its
# presence.
OPTIONS="-advertise NONE"
# and that doesn't automatically start
RUN_AT_STARTUP="no"
# Override these with settings from /etc/default/${NAME} if said file exists
if test -f /etc/default/${NAME} ; then
        . /etc/default/${NAME}
fi

case "${ACTION}" in
	start|start-now)
		if [ "${ACTION}" != "start-now" ]
		then
			case "$(echo "${RUN_AT_STARTUP}" | tr A-Z a-z)" in
				true|1|enabled|on|yes|ok)
					;;
				*)
					exit 0
					;;
			esac
		fi

		log_daemon_msg "Starting ${DESC}" ${NAME}
                mkdir -p /run/bzflag
                chown -R games:games /run/bzflag
		if ! start-stop-daemon --start -q -b --oknodo --pidfile ${PIDFILE} \
			-c games:games --exec ${BINARY} -- \
			-pidfile ${PIDFILE} ${OPTIONS} 2>&1 >> ${LOGFILE}
		then
			log_end_msg 1
		else
			log_end_msg 0
		fi
		;;
	stop|stop-now)
		log_daemon_msg "Stopping ${DESC}" ${NAME}
		if start-stop-daemon --stop -q --pidfile ${PIDFILE} \
			--retry 10 --exec ${BINARY} 2>&1 >> ${LOGFILE}
		then
			rm -f ${PIDFILE}
			log_end_msg 0
		else
			log_end_msg 1
		fi
		;;
	restart|force-reload)
		${0} stop
		sleep 1
		${0} start
		;;
        status)
                status_of_proc -p ${PIDFILE} ${BINARY} bzfs && exit 0 || exit $?
                ;;
	*)
		echo "Usage: /etc/init.d/${NAME} {start[-now]|stop[-now]|restart|force-reload|status}"
		exit 1
		;;
esac

exit 0
