#!/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