From 4fbed988b5c787740dc08d27fecf9e9151baf281 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Thu, 19 May 2016 18:53:35 -0300 Subject: Adds wtmux --- shell | 5 +++-- wtmux | 31 +++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) create mode 100755 wtmux diff --git a/shell b/shell index 0588fbe..36aa30d 100755 --- a/shell +++ b/shell @@ -7,6 +7,7 @@ BASENAME="`basename $0`" DEST="$1" COMMAND="$2" +MULTIPLEXER="wscreen" # Set window title # http://stackoverflow.com/questions/899609/gnu-screen-run-script-that-sends-commands-to-the-screen-session-it-is-being-run @@ -39,7 +40,7 @@ if [ "$BASENAME" == "shells" ]; then else if [ -z "$COMMAND" ] && screen -ls $DEST | grep -q "There is a screen on"; then # Local existing screen shell - wscreen $DEST + $MULTIPLEXER $DEST elif [ -z "$COMMAND" ] && [ "$DEST" == "root" ]; then # Local root shell window_title root @@ -51,7 +52,7 @@ else elif [ "$DEST" == "local" ]; then # Local screen shell window_title $COMMAND - wscreen $COMMAND + $MULTIPLEXER $COMMAND else # Remote shell using autossh autossh $DEST -t -- $COMMAND diff --git a/wtmux b/wtmux new file mode 100755 index 0000000..5a3f2a8 --- /dev/null +++ b/wtmux @@ -0,0 +1,31 @@ +# +# Worktemux: tmux session wrapper +# https://robots.thoughtbot.com/a-tmux-crash-course +# + +# Default options. +opts="" + +# Session selection. +if [ ! -z "$1" ]; then + if tmux list-sessions 2> /dev/null | grep -q "^$1:"; then + tmux attach -t $1 + exit $? + else + session="new -s $1" + fi + + if [ "$1" == "root" ]; then + sudo tmux attach + exit + elif [ -f "$HOME/.tmux/$1" ]; then + opts="-f $HOME/.tmux/$1" + elif [ -f "$HOME/.tmux/base" ]; then + opts="-f $HOME/.tmux/base" + else + opts="" + fi +fi + +# Start session. +tmux $opts $session -- cgit v1.2.3