SHARE
TWEET

Untitled

a guest Jun 3rd, 2015 18 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/bin/bash
  2.  
  3. usage()
  4. {
  5.         cat << EOF
  6.         usage $0 options
  7.  
  8.         This script launches, installs, closes, or connects to the console managing, a server.
  9.  
  10.         OPTIONS:
  11.         -h Show this message
  12.         -i Install
  13.         -s Start
  14.         -x Close
  15.         -c Console
  16.         -p Port
  17.         -w World
  18.         -u User
  19.         -n Name
  20. EOF
  21. }
  22.  
  23. WORLD='world1'
  24. MODE='help'
  25. USER='tshock'
  26. PORT='7777'
  27. TMUX_CONSOLE='tshock-console'
  28.  
  29. while getopts "hisxcp:w:u:n:" OPTION
  30. do
  31.         case $OPTION in
  32.                 p)
  33.                         PORT=$OPTARG
  34.                         ;;
  35.                 u)
  36.                         USER=$OPTARG
  37.                         ;;
  38.                 w)
  39.                         WORLD=$OPTARG
  40.                         ;;
  41.                 n)
  42.                         TMUX_CONSOLE=$OPTARG
  43.                         ;;
  44.                 h)
  45.                         usage
  46.                         exit 1
  47.                         ;;
  48.                 i)
  49.                         MODE='install'
  50.                         ;;
  51.                 c)
  52.                         MODE='console'
  53.                         ;;
  54.                 s)
  55.                         MODE='start'
  56.                         ;;
  57.                 x)
  58.                         MODE='close'
  59.                         ;;
  60.                 h)
  61.                         MODE='help'
  62.                         ;;
  63.         esac
  64. done
  65.  
  66. case $MODE in
  67.         start)
  68.                 if [ -n "$(sudo -u ${USER} tmux has-session -t $TMUX_CONSOLE)" ]; then
  69.                         sudo -u ${USER} tmux new-session -d -s ${TMUX_CONSOLE} -d "cd /srv/tshock/; mono TerrariaServer.exe -port ${PORT} -world /srv/tshock/Terraria/Worlds/${WORLD}.wld"
  70.                         if [ $? -gt 0 ]; then
  71.                                 exit 1
  72.                         fi
  73.                 else
  74.                         echo "Tshock (${WORLD}.wld/${TMUX_CONSOLE}) already started"
  75.                         exit 1
  76.                 fi
  77.                 exit
  78.                 ;;
  79.         close)
  80.                 sudo -u ${USER} tmux send-keys -t ${TMUX_CONSOLE} 'broadcast NOTICE: Server shutting down in 5 seconds!' C-m
  81.                 sleep 5
  82.                 sudo -u ${USER} tmux send-keys -t ${TMUX_CONSOLE} 'exit' C-m
  83.                 sleep 10
  84.                 exit
  85.                 ;;
  86.         install)
  87.                 sudo -u ${USER} bash -c 'cd /srv/tshock/; mono TerrariaServer.exe'
  88.                 exit
  89.                 ;;
  90.         console)
  91.                 sudo -u ${USER} tmux attach -t ${TMUX_CONSOLE}
  92.                 exit
  93.                 ;;
  94.         help)
  95.                 usage
  96.                 exit 1
  97.                 ;;
  98. esac
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top