bin/tm: handle multiple-matches better

This commit is contained in:
2020-11-27 12:36:53 +00:00
parent 8518f6cc01
commit 7f99a9630c

34
bin/tm
View File

@@ -1,7 +1,4 @@
#!/bin/bash
# Configuration
DATADIR=$HOME/data/screen
# Variables
#DRY=echo
DRY=
@@ -58,15 +55,28 @@ 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"
MATCHCOUNT=$(tmux ls | grep "$TARGET" | wc -l)
if [ $MATCHCOUNT -eq 0 ] ; then
# Use the name as what they passed.
SESSION_NAME="$TARGET"
COMMAND="new -s $SESSION_NAME"
elif [ $MATCHCOUNT -gt 1 ] ; then
found_multiple=1
OLD_TARGET=$TARGET
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
if [ "$COMMAND" != "" ] ; then