Pessoal..

assim como o amigo Klaus ae, eu sempre tô de olho na lista e aprendendo
coisas novas...
Fiz um script para administrar salas de CounterStrike, Day of Dfet e
Condition Zero porque toda hora que eu ia derrubar uma sala era um
transtorno, caia outras salas etc.O script está funcionando belezinha mas
ele ficou meio feião eu acho... Nos 'params' eu não pude deixar em uma linha
só porque no tenho 'secure' e 'insecure' e os nomes dos mapas quem mudam, e
eu ia ter que aumentar mais 2 campo na passagem de parametros, ia para 7 e
achei muito..
Se alguem puder dar alguma dica para otimizar agradeço, aí aprendo mais. Com
certeza tem outras formas de se fazez, esta foi a minha, e gostaria de
escutar a opinião de vocês mais experientes.

Valeu
law

OS: quem joga CounterStrike e quiser jogar é só me mandar um zémail off-list
para passar os IPS e porta.

Segue script:

if [ -z $1 ] || [ -z $2 ] || [ -z $3 ] || [ -z $4 ] || [ -z $5 ]; then
   echo "Usar: ./hlds.sh stop/start cliente porta game(cstrike/czero/dod)
jogadores (min12/max20)"
            echo "Exemplo: start cliente 27100 cstrike 20"
  exit 100
fi
if [ -n "$6" ]; then
  /bin/echo "Usar somente 5 argumentos"
  exit 100
fi

ACAO=$1
CLIENTE=$2
PORTA=$3
GAME=$4
JOG=$5
DIR=/opt/lwg/$2
PARAMS="./hlds_run -console -game $GAME +port $PORTA +map de_dust2
+maxplayers $JOG -secure -autoupdate +log on"
PARAMS2="./hlds_run -console -game $GAME +port $PORTA +map de_dust_cz
+maxplayers $JOG -secure -autoupdate +log on"
PARAMS3="./hlds_run -console -game $GAME +port $PORTA +map dod_forest
+maxplayers $JOG -secure -autoupdate +log on"
PARAMS4="./hlds_run -console -game $GAME +port $PORTA +map de_dust2
+maxplayers $JOG -insecure -autoupdate +log on"
PARAMS5="./hlds_run -console -game $GAME +port $PORTA +map de_dust_cz
+maxplayers $JOG -insecure -autoupdate +log on"
PARAMS6="./hlds_run -console -game $GAME +port $PORTA +map dod_forest
+maxplayers $JOG -insecure -autoupdate +log on"

case "$1" in
 'start' )
        echo -n "Deseja ligar esta sala com VAC(secure)? [s/n]"
       read resposta
       if [ $resposta = s ]; then
            if [ "$GAME" = cstrike ]
             then
              cd $DIR
              echo "Reiniciando $CLIENTE game $GAME..."
              nohup $PARAMS / -$CLIENTE gcc &
              sleep 2
              echo "Sala $CLIENTE game $GAME reiniciada...VAC OK."
           elif [ "$GAME" = czero ]
            then
              cd $DIR
              echo "Reiniciando $CLIENTE game $GAME..."
              nohup $PARAMS2 / -$CLIENTE gcc &
              sleep 2
              echo "Sala $CLIENTE game $GAME reiniciada...VAC OK."
           else [ "$GAME" = dod ]
              cd $DIR
              echo "Reiniciando $CLIENTE game $GAME..."
              nohup $PARAMS3 / -$CLIENTE gcc &
              sleep 2
              echo "Sala $CLIENTE game $GAME reiniciada...VAC OK."
             exit 0
           fi
      else
             if [ "$GAME" = cstrike ]
             then
              cd $DIR
              echo "Reiniciando $CLIENTE game $GAME..."
              nohup $PARAMS4 / -$CLIENTE gcc &
              sleep 2
              echo "Sala $CLIENTE game $GAME reiniciada...VAC NO."
           elif [ "$GAME" = czero ]
            then
              cd $DIR
              echo "Reiniciando $CLIENTE game $GAME..."
              nohup $PARAMS5 / -$CLIENTE gcc &
              sleep 2
              echo "Sala $CLIENTE game $GAME reiniciada...VAC NO."
           else [ "$GAME" = dod ]
              cd $DIR
              echo "Reiniciando $CLIENTE game $GAME..."
              nohup $PARAMS6 / -$CLIENTE gcc &
              sleep 2
              echo "Sala $CLIENTE game $GAME reiniciada...VAC NO."
             exit 0
           fi
     fi
          ;;

 'stop' )
      echo "Parando $CLIENTE game $GAME..."
     sudo kill -9 `ps aux | grep $PORTA | awk '{print $2}'`
      echo "Sala $CLIENTE game $GAME parada..."
    ;;
 *)
esac
exit 0



[As partes desta mensagem que não continham texto foram removidas]



---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como 
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
aviso.
---------------------------------------------------------------------
Sair da lista: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a