#!/bin/bash

# 
# Autor: c0m4r
# www.gameadmin.pl
# 
# Skrypt wymaga zainstalowanego pakietu: screen
# Dla Ubuntu i Debiana mozna go pobrac z roota:
# apt-get install screen -y
# 
# Uzytkownanie:
# 
# ./run.sh start		# uruchomienie serwera
# ./run.sh stop			# zatrzymywanie serwera
# ./run.sh restart		# restart serwera
# 

nazwa=`csrv1`			# nazwa oznaczenia (i katalogu) serwera
ip=`123.456.678.90`		# adres ip
port=`27015`			# port
mapa=`de_dust2`			# mapa
sloty=`20`				# liczba slotow

if [ $# -lt 1 ]; then

    echo "Skrypt wymaga podania jednego z paramterow: start, stop,  restart"
    exit 0

fi

action=$1

function srv_start {

    running=`ps ax | grep hlds_run | grep $port | grep -v grep | awk '{print $1}' | tail -1`

    if [ "$running" ]; then

    echo "Serwer jest juz uruchomiony"
    exit 0

    fi

    cd ~/$nazwa

    screen -dmS $nazwa ./hlds_run -game cstrike +ip $ip +port $port +maxplayers $sloty +exec server.cfg +map $mapa

    sleep 1

    ls /var/run/screen/S-hlds | grep $nazwa | cut -f1 -d. > ~/$nazwa.pid

}

function srv_stop {

    pid=`cat ~/$nazwa.pid`

    kill -9 $pid >& /dev/null

    screen -wipe >& /dev/null

    rm ~/$nazwa.pid

}

if [ "$action" == "start" ]; then

    srv_start

fi

if [ "$action" == "stop" ]; then

    srv_stop
fi

if [ "$action" == "restart" ]; then

    srv_stop

    sleep 1

    srv_start

fi

if [ "$action" != "start" ] && [ "$action" != "stop" ] && [ "$action" != "restart" ]; then

    echo "Wprowadzona akcja: $action - jest niepoprawna."
    echo "Poprawne akcje: start, stop, restart"

fi
