| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #!/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 {//} \
- | 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;
|