#!/bin/sh

#####################################
# ENTER CONFIGURATION DETAILS BELOW #
#####################################

name='Alien Arena'
execpath=~/alienarena2008
execname=crded
cfgpath=~/alienarena2008/arena

# use to generate core dumps after crashs
ulimit -c unlimited

#####################################
#   END OF CONFIGURATION DETAILS    #
#   DO NOT EDIT BELOW THIS LINE!    #
#####################################

# Written by Tony Jackson 14/07/2008

cd $execpath
# remove spaces in name
sname=`echo ${name} | sed 's/\ /_/g'`

# check for existing screen session or start a new one
present=`screen -ls $sname | wc -l`
if [ $present != '2' ]; then
	sname=`screen -ls $sname | awk 'NR==2{printf $1}'`
	echo "[OK      ] Screen session $sname"
else
	# launch screen
	screen -dmS $sname -t shell
	echo "[STARTING] New screen session $sname"
fi

cd $cfgpath
for i in `ls port?????`; do
	cd $cfgpath
	# search config file for hostname and pull out
	hostname=`cat $i | grep hostname | sed 's/set\ \|hostname\ \|\"//g'`
	# extract port number from soft link name
	port=`echo $i | sed 's/port//'`
	title="Port $port => $hostname"

	cd ${execpath}
	
	# See if this process is already running
	pid=`ps aux | grep $execname | grep $i | awk '{printf $2}'`

	# See if pid existed for this config
	if [ -z $pid ]; then
		echo "[STARTING] $title"
		# launch server and attach to existing screen session
		screen -r $sname -X screen -t "$title" ./$execname +set dedicated 1 +set port $port +exec $i
	else
		echo "[OK      ] $title"
	fi
done
