42 lines
1.2 KiB
Bash
Executable file
42 lines
1.2 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
# Extract the base name of the branch
|
|
branch_name=$(basename "$1")
|
|
clean_name=$(echo "$branch_name" | tr "./" "__")
|
|
tmux_running=$(pgrep tmux)
|
|
|
|
# Detect if we are in a tmux session or using WezTerm
|
|
if [[ -z $TMUX ]] && [[ -z $tmux_running ]]; then
|
|
# tmux specific logic
|
|
session_name=$(tmux display-message -p "#S")
|
|
target="$session_name:$clean_name"
|
|
|
|
if ! tmux select-window -t "$target" 2>/dev/null; then
|
|
tmux neww -dn "$clean_name"
|
|
fi
|
|
|
|
shift
|
|
if [ $# -gt 0 ]; then
|
|
tmux send-keys -t "$target" "$*" Enter
|
|
fi
|
|
|
|
elif command -v wezterm >/dev/null && wezterm --version | grep -q "wezterm"; then
|
|
# WezTerm specific logic
|
|
pane_id=$(wezterm cli list | grep "$clean_name" | awk '{print $1}')
|
|
|
|
if [ -z "$pane_id" ]; then
|
|
pane_id=$(wezterm cli spawn --new-tab --title "$clean_name" | awk '{print $1}')
|
|
else
|
|
wezterm cli activate-tab --pane-id "$pane_id"
|
|
fi
|
|
|
|
shift
|
|
if [ $# -gt 0 ]; then
|
|
wezterm cli send-text --pane-id "$pane_id" "$*"
|
|
wezterm cli send-text --pane-id "$pane_id" "\n"
|
|
fi
|
|
|
|
else
|
|
echo "Warning: No terminal multiplexer detected (tmux or WezTerm)."
|
|
fi
|
|
|