mirror of
https://github.com/wesnoth/wesnoth
synced 2025-05-03 08:33:31 +00:00
43 lines
940 B
Bash
Executable File
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
|