#!/bin/bash

output_file=~/workshop/repos.txt

# Ensure the output directory exists
mkdir -p "$(dirname "$output_file")"

# Clear the existing file
> "$output_file"

# Find all .git directories, excluding hidden directories and suppressing permission denied errors
find ~/ -type d -name ".git" -not -path "*/.*/*" 2>/dev/null | while read -r gitdir; do
    # Get the parent directory of the .git folder
    repo_path=$(dirname "$gitdir")
    echo "$repo_path" >> "$output_file"
done

echo "Git repositories have been written to $output_file"

# Remove duplicate entries
sort -u "$output_file" -o "$output_file"

echo "Duplicate entries removed. Final list:"
cat "$output_file"