wesnoth/utils/mp-server/run_campaignd

43 lines
940 B
Bash
Executable File

#!/bin/sh
die() {
echo >&2 "$@"
exit 1
}
[ $# -ge 1 ] || die "Usage: $0 <server version> [<additional parameters for campaignd>]"
VERSION=$1
shift
PARAMETERS="$@"
case $VERSION in
1.4)
THREADS=4
;;
*)
THREADS=2
;;
esac
SERVERBASE=$HOME/campaignd/$VERSION/
[ -d "$SERVERBASE" ] || die "Server '$VERSION' not found."
[ -d "$SERVERBASE/data" ] || die "Server '$VERSION' has no data/ dir."
[ -d "$SERVERBASE/logs" ] || mkdir $SERVERBASE/logs
ulimit -c unlimited
cd $SERVERBASE || exit 1
while [ true ]
do
DATE=$(date +"%Y%m%d-%H%M%S")
COMMAND="$HOME/bin/campaignd-$VERSION $THREADS $PARAMETERS"
echo "started $VERSION campaignd with command: '$COMMAND' at: $DATE"
$COMMAND &> $SERVERBASE/logs/campaignd.$DATE
mv gmon.out gmon.$DATE.out &> /dev/null
[ "$?" != "0" ] || exit
[ "$?" != "1" ] || die "File I/O error."
[ "$?" != "2" ] || die "Could not parse config file."
[ "$?" != "3" ] || die "Could not bind to port."
done