diff options
author | Raymaekers Luca <raymaekers.luca@gmail.com> | 2024-10-24 23:16:45 +0200 |
---|---|---|
committer | Raymaekers Luca <raymaekers.luca@gmail.com> | 2024-10-24 23:16:45 +0200 |
commit | af89896bfa0a9f2cc987e0683568dd22af8efb27 (patch) | |
tree | 4a4930c0f691ecce551208ad91dd5e6f76a73795 /bin | |
parent | 6b0cafb5b3b9f7d986c843662ee58569d879e81d (diff) |
checkpoint
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/extra/tmux-sessionizer | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/bin/extra/tmux-sessionizer b/bin/extra/tmux-sessionizer new file mode 100755 index 0000000..8b04b0b --- /dev/null +++ b/bin/extra/tmux-sessionizer @@ -0,0 +1,36 @@ +#!/bin/sh + +if [ $# -eq 1 ]; then + selected="$1" +else + pfx="$HOME/proj" + d="$(find "$pfx" -mindepth 1 -maxdepth 1 -type d | sed "s@$pfx/@@" | fzf)" + { [ "$d" ] && [ -d "$pfx/$d" ]; } || exit 1 + selected="${d##*/}" +fi +>&2 printf 'selected: %s\n' "$selected" + +if [ -z "$selected" ]; then + exit 0 +fi + +selected_name="$(basename "$selected" | tr '.' '_')" +tmux_running="$(pgrep "tmux" | head -n1)" + +>&2 printf 'tmux_running: "%s"\n' "$tmux_running" +>&2 printf 'selected_name: %s\n' "$selected_name" + +if [ -z $TMUX ] && [ -z "$tmux_running" ]; then + tmux new-session -s "$selected_name" -c "$selected" + exit 0 +fi + +if ! tmux has-session -t="$selected_name" 2> /dev/null; then + tmux new-session -ds "$selected_name" -c "$selected" +fi + +if [ -z $TMUX ]; then + tmux attach -t "$selected_name" +else + tmux switch-client -t "$selected_name" +fi |