]> gitweb.fluxo.info Git - termplex.git/commitdiff
Start tmux migration
authorSilvio Rhatto <rhatto@riseup.net>
Fri, 25 Aug 2017 11:04:40 +0000 (08:04 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Fri, 25 Aug 2017 11:04:40 +0000 (08:04 -0300)
shell

diff --git a/shell b/shell
index f07f8540dfb939e404fc27da2271dae577bb1cba..31d28233723e8a3590d4e42743c4adfcc564f69b 100755 (executable)
--- a/shell
+++ b/shell
@@ -1,6 +1,6 @@
 #!/bin/bash
 #
-# Simple $AUTOSSH and screen wrapper.
+# Simple $AUTOSSH and terminal multiplexer wrapper.
 #
 
 # Parameters
@@ -11,7 +11,9 @@
 BASENAME="`basename $0`"
 DEST="$1"
 COMMAND="$2"
-MULTIPLEXER="wscreen"
+#LOCAL_MULTIPLEXER="wscreen"
+LOCAL_MULTIPLEXER="wtmux"
+REMOTE_MULTIPLEXER="screen -x"
 MONITORING="-M $(($RANDOM + 1024))"
 AUTOSSH="autossh $MONITORING"
 
@@ -27,6 +29,16 @@ function window_title {
   fi
 }
 
+# Check if a named session exists, screen version
+function shell_wscreen_ls {
+  screen -ls $1 | grep -q "There is a screen on"
+}
+
+# Check if a named session exists, tmux version
+function shell_wtmux_ls {
+  tmux ls | grep -q ^$1:
+}
+
 # Syntax check
 if [ -z "$DEST" ]; then
   exit 1
@@ -39,18 +51,18 @@ window_title $DEST
 if [ "$BASENAME" == "shells" ]; then
   # Remote screen shell using $AUTOSSH
   if [ "$COMMAND" == "root" ]; then
-    $AUTOSSH $DEST -t -- sudo screen -x
+    $AUTOSSH $DEST -t -- sudo $REMOTE_MULTIPLEXER
   else
-    $AUTOSSH $DEST -t -- screen -x $COMMAND
+    $AUTOSSH $DEST -t -- $REMOTE_MULTIPLEXER $COMMAND
   fi
 else
-  if [ -z "$COMMAND" ] && screen -ls $DEST | grep -q "There is a screen on"; then
+  if [ -z "$COMMAND" ] && shell_${LOCAL_MULTIPLEXER}_ls $DEST; then
     # Local existing screen shell
-    $MULTIPLEXER $DEST
+    $LOCAL_MULTIPLEXER $DEST
   elif [ -z "$COMMAND" ] && [ "$DEST" == "root" ]; then
     # Local root shell
     window_title root
-    sudo screen -x
+    sudo $REMOTE_MULTIPLEXER
   elif [ -z "$COMMAND" ] && [ -f "$HOME/.screen/$DEST" ]; then
     # Local root shell
     window_title $DEST
@@ -58,7 +70,7 @@ else
   elif [ "$DEST" == "local" ]; then
     # Local screen shell
     window_title $COMMAND
-    $MULTIPLEXER $COMMAND
+    $LOCAL_MULTIPLEXER $COMMAND
   else
     # Remote shell using $AUTOSSH
     $AUTOSSH $DEST -t -- $COMMAND