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
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
elif [ "$DEST" == "local" ]; then
# Local screen shell
window_title $COMMAND
- wscreen $COMMAND
+ $MULTIPLEXER $COMMAND
else
# Remote shell using autossh
autossh $DEST -t -- $COMMAND
--- /dev/null
+#
+# 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