summaryrefslogtreecommitdiff
path: root/rconsole/rconsole
diff options
context:
space:
mode:
Diffstat (limited to 'rconsole/rconsole')
-rwxr-xr-xrconsole/rconsole40
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]"