Add bin/tm
This commit is contained in:
74
bin/tm
Executable file
74
bin/tm
Executable file
@@ -0,0 +1,74 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Configuration
|
||||||
|
DATADIR=$HOME/data/screen
|
||||||
|
|
||||||
|
# Variables
|
||||||
|
#DRY=echo
|
||||||
|
DRY=
|
||||||
|
CLEAN=0
|
||||||
|
|
||||||
|
usage () {
|
||||||
|
echo "Usage: $(basename $0) [-n] name"
|
||||||
|
echo
|
||||||
|
echo "-n - perform dry run, do nothing"
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ $# -lt 1 ] ; then
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
while [ $# -gt 0 ] ; do
|
||||||
|
# Store how many options we have now
|
||||||
|
OPTCOUNT=$#
|
||||||
|
OPT=$1
|
||||||
|
|
||||||
|
# Consume options if we recognise them
|
||||||
|
if [ "$OPT" == "-n" ] ; then
|
||||||
|
DRY=echo
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
if [ "$OPT" == "-h" ] ; then
|
||||||
|
usage
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
if [ "$OPT" == "-l" ] ; then
|
||||||
|
tmux ls
|
||||||
|
exit $?
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Bit of a hack, but it works.
|
||||||
|
if [ $# == $OPTCOUNT ] ; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "$TMUX" != "" ] ; then
|
||||||
|
echo "You're already in a tmux session; detach first."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
TARGET=$1
|
||||||
|
shift
|
||||||
|
if [ "$TARGET" == "" ] ; then
|
||||||
|
echo "You didn't specify a target."
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo Looking for $TARGET
|
||||||
|
|
||||||
|
MATCH=$(tmux ls | grep "$TARGET")
|
||||||
|
if [ "$MATCH" == "" ] ; then
|
||||||
|
# Use the name as what they passed.
|
||||||
|
SESSION_NAME="$TARGET"
|
||||||
|
COMMAND="new -s $SESSION_NAME"
|
||||||
|
else
|
||||||
|
# Pull out the existing session name.
|
||||||
|
SESSION_NAME=$(echo "$MATCH" | sed -e 's/:.*$//')
|
||||||
|
COMMAND="at -t $SESSION_NAME"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$COMMAND" != "" ] ; then
|
||||||
|
$DRY tmux $COMMAND
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user