#!/bin/bash # Variable ACTION=$1 PORT=$2 MOD=$3 GAME="cod4" if [ "$MOD" = "" ] then MODS="" else MODS='+set fs_game "mods/'$MOD'"' fi CMD='./cod4_lnxded +set net_port '$PORT' +set sv_punkbuster 1 +set sv_pure 1 +exec server.cfg +set fs_homepath "/home/cod4/'$GAME'_'$PORT'" +set fs_basepath "/home/cod4/master" '$MODS' +map_rotate' DIR="/home/cod4/master" function check() { CPORT=$1 if [ "$CPORT" = "" ] then echo -1 elif ((($CPORT > 20000) && ($CPORT < 40000))) #if [ $CPORT -lt 20000 && $CPORT -gt 40000 ] then CHECK=$(screen -ls | grep -c $GAME"_"$CPORT) echo $CHECK else echo -1 fi } function list() { NBR=$(screen -ls | grep -c $GAME) if [ "$NBR" != "0" ] then screen -ls | grep $GAME else echo "No server $GAME is running" fi } function start() { CPORT=$1 CCHECK=$(check $CPORT) if [ $CCHECK -eq -1 ] then echo "Use port between 20001 and 39999" elif [ "$CCHECK" = "0" ] then cd $DIR >/dev/null screen -A -m -d -S $GAME"_"$CPORT $CMD >/dev/null echo "Server $GAME successfully on $PORT" else echo "Server $GAME is already running on $CPORT" fi } function stop() { CPORT=$1 CCHECK=$(check $CPORT) if [ $CCHECK -eq -1 ] then echo "Use port between 20001 and 39999" elif [ "$CCHECK" != "0" ] then screen -S $GAME"_"$CPORT -X quit >/dev/null echo "Stopping server $GAME on $CPORT" else echo "Server $GAME has not running on $CPORT" fi } function restart() { CPORT=$1 CCHECK=$(check $CPORT) if [ $CCHECK -eq -1 ] then echo "Use port between 20001 and 39999" elif [ "$CCHECK" != "0" ] then stop $CPORT echo "Attempting to restart..." sleep 3 start $CPORT else start fi } case "$ACTION" in 'start') start $PORT ;; 'stop') stop $PORT ;; 'restart') restart $PORT ;; 'check') check $PORT ;; 'list') list ;; *) echo "/!\ Wrong option /!\ " echo " server_cod4 " echo "" echo " action : start - stop - restart - check - list" echo " port : port of the server" esac