diff options
Diffstat (limited to 'rconsole/rconsole')
-rwxr-xr-x | rconsole/rconsole | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/rconsole/rconsole b/rconsole/rconsole new file mode 100755 index 0000000..835952a --- /dev/null +++ b/rconsole/rconsole @@ -0,0 +1,40 @@ +#!/bin/bash + +if [ "$#" -lt 1 ]; then + echo "usage: $0 [instance]" + exit 1 +fi + +export RCONSOLE_INSTANCE="$1" +export RCONSOLE_SCREEN="rconsole" +export RCONSOLE_PIPE="/home/zittrig/tremulous/server/@$RCONSOLE_INSTANCE/home/slacker/pipe" + +if [ ! -p "$RCONSOLE_PIPE" ]; then + printf "\"%s\" is not a pipe\n" "$RCONSOLE_PIPE" + exit 1 +fi + +SESSION="$RCONSOLE_SCREEN" + +screen -S $SESSION -X quit + +screen -S $SESSION -a -O -d -m -T xterm -s rconsole-output || exit +screen -S $SESSION -X screen rconsole-input || exit + +( + while ! screen -list | grep "$SESSION.*Attached" > /dev/null; do + sleep 0.01s + done + + screen -S $SESSION -X select 0 + screen -S $SESSION -X title "Server logs" + screen -S $SESSION -X split + screen -S $SESSION -X focus + screen -S $SESSION -X select 1 + screen -S $SESSION -X title "Rcon" + screen -S $SESSION -X resize 10% +) & + +screen -d -r $SESSION +clear +echo "[rconsole has finished]" |