#!/bin/bash
. /lib/lsb/init-functions
GAME_DIR=/srv/games/RVS
NAME_OF_THE_GAME="Ravenshield"
CHUSER=games
CHGROUP=games
SHELL=/usr/bin/wine
NAME_OF_THE_GAME_INSTANCE="$NAME_OF_THE_GAME($2)"
GAME_EXECUTABLES_DIR=$GAME_DIR/System
GAME_EXECUTABLE_FILENAME=UCC.exe
GAME_EXECUTABLE_FULLPATH=$GAME_EXECUTABLES_DIR/$GAME_EXECUTABLE_FILENAME
PROFILES=/etc/uccl/profiles
TEMPLATEPROFILES=$PROFILES/templates
SERVERPROFILES=$PROFILES/game-servers
LOGFILE=/dev/null
RUNDIR=/var/run
PIDDIR=$RUNDIR/ucc-servers
PIDFILE=$PIDDIR/$2.pid
STARTER="$SHELL $GAME_EXECUTABLE_FULLPATH"
EXTRA_OPTS="server servercfg=$SERVERPROFILES/$2.ini"
#> $LOGFILE 2>&1
## FOR DEBUGGING SCRIPT
echo 'Exccutables dir:' $GAME_EXECUTABLES_DIR
echo 'Exccutable filename:' $GAME_EXECUTABLE_FILENAME
echo 'Executable fullpath:' $GAME_EXECUTABLE_FULLPATH
echo 'Starter:' $STARTER
echo 'PID dir:' $PIDDIR
echo 'PID file:' $PIDFILE
echo
check_pid_dir()
{
if [ -d "$PIDDIR" ];
then
false
else
mkdir $PIDDIR && chown $CHUSER:$CHGROUP $PIDDIR
fi
}
start()
{
start-stop-daemon --start --quiet --pidfile $PIDFILE --background --chdir $GAME_EXECUTABLES_DIR --chuid $CHUSER:$CHGROUP --name $GAME_EXECUTABLE_FILENAME --startas $STARTER -- $EXTRA_OPTS
}
debug()
{
start-stop-daemon --start --verbose --chdir $GAME_EXECUTABLES_DIR --name $GAME_EXECUTABLE_FILENAME --startas $STARTER -- $EXTRA_OPTS
}
stop()
{
start-stop-daemon --stop --quiet --pidfile $PIDFILE --name $GAME_EXECUTABLE_FILENAME
}
case "$1" in
start) log_daemon_msg "Starting game server" $NAME_OF_THE_GAME_INSTANCE
check_pid_dir
start
log_end_msg $?
;;
debug) log_daemon_msg "Starting game server in debug mode" $NAME_OF_THE_GAME_INSTANCE
echo
echo
debug
log_end_msg $?
;;
stop) log_daemon_msg "Stopping game server" $NAME_OF_THE_GAME_INSTANCE
stop
log_end_msg $?
;;
restart) log_daemon_msg "Restarting game server" $NAME_OF_THE_GAME_INSTANCE
stop
start
$RVSEXECUTABLES/ucc.exe server serverini=$SERVERPROFILES/$2.ini > $LOGFILE 2>&1 -- $LSBNAMES $EXTRA_OPTS
log_end_msg $?
;;
status)
log_action_begin_msg "Checking $NAME_OF_THE_GAME game server"
if pidofproc -p "$PIDFILE" >/dev/null; then
log_action_end_msg 0 "running"
exit 0
else
if [ -e "$PIDFILE" ]; then
log_action_end_msg 1 "failed to start"
exit 1
else
log_action_end_msg 0 "not running"
exit 3
fi
fi
;;
*) log_action_msg "Usage: /etc/init.d/cron {start|stop|status|restart} {ServerProfile}"
exit 2
;;
esac
exit 0