#!/bin/sh
# generated by https://github.com/0xalwayslucky/Sysd2v/blob/main/sysd2v.py and hand-adjusted
### BEGIN INIT INFO
# Provides: mineclonia-server
# Required-Start:	$remote_fs $syslog $network $local_fs
# Required-Stop:	$remote_fs $syslog $network $local_fs
# Default-Start:	2 3 4 5
# Default-Stop:		0 1 6
# Short-Description: Mineclonia multiplayer server (default config)
# Documentation: man:minecloniaserver(6)
### END INIT INFO

. /lib/lsb/init-functions
prog=mineclonia-server
if test -f /etc/mineclonia/default.env; then
	. /etc/mineclonia/default.env
fi
mineclonia_GAMEID="${mineclonia_GAMEID:-mineclonia}"
PIDFILE=/var/run/$prog.pid
DESC="Mineclonia multiplayer server (default config)"
# Service documentation: man:minecloniaserver(6)
export LUANTI_USER_PATH=/var/lib/mineclonia/default
RESTART_MODE=on-failure
RESTART_SEC=1

start() {
	log_daemon_msg "Starting $DESC" "$prog"
	start-stop-daemon --start --background --make-pidfile --pidfile $PIDFILE --startas /usr/libexec/mineclonia/minecloniaserver -- --config /etc/mineclonia/default.conf --gameid $mineclonia_GAMEID
	if [ $? -ne 0 ]; then
		log_end_msg 1
		exit 1
	fi
	if [ $? -eq 0 ]; then
		log_end_msg 0
	fi
}

stop() {
	log_daemon_msg "Stopping $DESC" "$prog"
	start-stop-daemon --stop --pidfile $PIDFILE --exec /usr/libexec/mineclonia/minecloniaserver --oknodo
	if [ $? -ne 0 ]; then
		log_end_msg 1
		exit 1
	fi
	if [ $? -eq 0 ]; then
		log_end_msg 0
	fi
}

status() {
	status_of_proc /usr/libexec/mineclonia/minecloniaserver "$prog"
}

force_reload() {
	stop
	start
}

case "$1" in
	start)
		start
		;;
	stop)
		stop
		;;
	status)
		status
		;;
	force-reload)
		force_reload
		;;
	restart)
		stop
		sleep 2
		start
		;;
	*)
		echo "Usage: $0 {start|stop|status|force-reload|restart}"
		exit 2
esac
