Use fd/find to locate git repositories in project.sh

This commit is contained in:
2026-02-19 12:52:45 +00:00
parent 688f263323
commit 060bb683fb

View File

@@ -2,19 +2,27 @@
set -e set -e
projects=() projects_dir=$HOME/Projects
# Get list of projects from ~/Projects # Find git repositories and worktrees
for dir in $HOME/Projects/**/*; do if command -v fd &>/dev/null; then
if [ -d $dir ]; then projects=$(
projects+=(${dir#$HOME/Projects/}) fd -H '^\.git$' "$projects_dir" |
sed -E -e "s|^$projects_dir/||" -e 's|/\.git/?$||' |
sort -u
)
else
projects=$(
find "$projects_dir" \( -name 'node_modules' -o -name '.git' \) -prune -name '.git' -print |
sed -E -e "s|^$projects_dir/||" -e 's|/\.git/?$||' |
sort -u
)
fi fi
done
project=$( project=$(
echo "${projects[@]}" | tr ' ' '\n' | sort -u | echo "$projects" |
fzf --layout=reverse --info=hidden --border=rounded --cycle fzf --layout=reverse --info=hidden --border=rounded --cycle
) )
tmux new-window -n $project -c ~/Projects/$project tmux new-window -n "$project" -c "$projects_dir/$project"
~/.local/share/tmux/layouts/window-auto ~/.local/share/tmux/layouts/window-auto