bin/tm: handle multiple-matches better
This commit is contained in:
34
bin/tm
34
bin/tm
@@ -1,7 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Configuration
|
|
||||||
DATADIR=$HOME/data/screen
|
|
||||||
|
|
||||||
# Variables
|
# Variables
|
||||||
#DRY=echo
|
#DRY=echo
|
||||||
DRY=
|
DRY=
|
||||||
@@ -58,15 +55,28 @@ fi
|
|||||||
|
|
||||||
echo Looking for $TARGET
|
echo Looking for $TARGET
|
||||||
|
|
||||||
MATCH=$(tmux ls | grep "$TARGET")
|
MATCHCOUNT=$(tmux ls | grep "$TARGET" | wc -l)
|
||||||
if [ "$MATCH" == "" ] ; then
|
if [ $MATCHCOUNT -eq 0 ] ; then
|
||||||
# Use the name as what they passed.
|
# Use the name as what they passed.
|
||||||
SESSION_NAME="$TARGET"
|
SESSION_NAME="$TARGET"
|
||||||
COMMAND="new -s $SESSION_NAME"
|
COMMAND="new -s $SESSION_NAME"
|
||||||
else
|
elif [ $MATCHCOUNT -gt 1 ] ; then
|
||||||
# Pull out the existing session name.
|
found_multiple=1
|
||||||
SESSION_NAME=$(echo "$MATCH" | sed -e 's/:.*$//')
|
OLD_TARGET=$TARGET
|
||||||
COMMAND="at -t $SESSION_NAME"
|
TARGET="^$OLD_TARGET:"
|
||||||
|
MATCHCOUNT=$(tmux ls | grep "$TARGET" | wc -l)
|
||||||
|
if [ $MATCHCOUNT -ne 1 ] ; then
|
||||||
|
echo "Confused by session naming; $OLD_TARGET matches too many sessions."
|
||||||
|
$DRY tmux ls | grep $OLD_TARGET
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $MATCHCOUNT -eq 1 ] ; then
|
||||||
|
MATCH=$(tmux ls | grep "$TARGET")
|
||||||
|
# Pull out the existing session name.
|
||||||
|
SESSION_NAME=$(echo "$MATCH" | sed -e 's/:.*$//')
|
||||||
|
COMMAND="at -t $SESSION_NAME"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$COMMAND" != "" ] ; then
|
if [ "$COMMAND" != "" ] ; then
|
||||||
|
|||||||
Reference in New Issue
Block a user