Fix project.sh to list ~/Projects/<group>/<repo> again

This commit is contained in:
2026-02-24 18:21:29 +00:00
parent 3f7854f86d
commit 4e53bc4795

View File

@@ -4,23 +4,33 @@ set -e
projects_dir=$HOME/Projects projects_dir=$HOME/Projects
# Find git repositories and worktrees # All depth-2 directories without @ are included unconditionally
projects=()
for dir in "$projects_dir"/*/*/; do
[ -d "$dir" ] || continue
relative="${dir#$projects_dir/}"
relative="${relative%/}"
[[ "$relative" != *@* ]] && projects+=("$relative")
done
# For @ directories, only include those with .git
if command -v fd &>/dev/null; then if command -v fd &>/dev/null; then
projects=$( while IFS= read -r line; do
fd -H '^\.git$' "$projects_dir" | projects+=("$line")
sed -E -e "s|^$projects_dir/||" -e 's|/\.git/?$||' | done < <(fd -H '^\.git$' "$projects_dir" |
sort -u grep '@' |
) sed -E -e "s|^$projects_dir/||" -e 's|/\.git/?$||')
else else
projects=$( while IFS= read -r line; do
find "$projects_dir" \( -name 'node_modules' -o -name '.git' \) -prune -name '.git' -print | projects+=("$line")
sed -E -e "s|^$projects_dir/||" -e 's|/\.git/?$||' | done < <(find "$projects_dir" \( -name 'node_modules' -o -name '.git' \) \
sort -u -prune -name '.git' -print |
) grep '@' |
sed -E -e "s|^$projects_dir/||" -e 's|/\.git/?$||')
fi fi
project=$( project=$(
echo "$projects" | printf '%s\n' "${projects[@]}" | sort -u |
fzf --layout=reverse --info=hidden --border=rounded --cycle fzf --layout=reverse --info=hidden --border=rounded --cycle
) )