#!/bin/zsh if [ -z "$1" ]; then (sleep 3; exit 1) & PROJECT=$(timeout 2 fd \ --base-directory ~ \ -d 10 \ -u -E '.[a-fh-zA-FG-Z]*' \ --prune \\.git$ \ -E "Library" \ -E "OrbStack" \ -E "node_modules" \ -E "target" \ -E "dist" \ -E ".bare" \ -E ".cargo" \ -E ".npm" \ -E ".rustup" \ -E "venv" \ -E ".venv" \ -x echo {//} \ | sort -u -r \ | fzf); else PROJECT="$1" fi; if [ -n "$PROJECT" ]; then PROJECT=$(realpath "$PROJECT") NAME=$(basename "$PROJECT") if git -C "$PROJECT" rev-parse --is-inside-work-tree &>/dev/null; then GIT_DIR=$(git -C "$PROJECT" rev-parse --git-dir 2>/dev/null) COMMON_DIR=$(git -C "$PROJECT" rev-parse --git-common-dir 2>/dev/null) if [[ "$GIT_DIR" != "$COMMON_DIR" ]]; then REPO_ROOT=$(dirname "$COMMON_DIR") REPO_NAME=$(basename "$REPO_ROOT") NAME="$NAME | $REPO_NAME" fi fi tmux select-window -t "$NAME" || \ tmux new-window -c "$PROJECT" -n "$NAME" /bin/zsh $DOTFILES_DIR/.scripts/nvim_launch.zsh "$PROJECT" else exit 1 fi;