#!/bin/bash

# Temporaire pour les résultats des liens brisés
BROKEN_LINKS=$(mktemp)

# Fonction pour vérifier les liens
check_links() {
    local file=$1
    local base_dir=$(dirname "$file")

    # Cherche les liens vers les fichiers .md
    grep -o '\[.*\](.*\.md)' "$file" | while read -r link; do
        # Extraire le chemin du fichier lié
        linked_file=$(echo "$link" | sed 's/^.*(\(.*\))$/\1/')
        
        # Résoudre le chemin relatif
        resolved_path=$(realpath -m "$base_dir/$linked_file")
        
        # Vérifie si le fichier lié existe
        if [ ! -f "$resolved_path" ]; then
            echo "Lien brisé dans $file: $linked_file (résolu en $resolved_path)" >> "$BROKEN_LINKS"
        fi
    done
}

# Répertorie tous les fichiers .md dans le dépôt
find . -type f -name "*.md" ! -name "README.md" | while read -r file; do
    check_links "$file"
done

# Affiche les liens brisés
if [ -s "$BROKEN_LINKS" ]; then
    echo "Les liens brisés suivants ont été trouvés :"
    cat "$BROKEN_LINKS"
else
    echo "Aucun lien brisé trouvé."
fi

# Nettoyage
rm "$BROKEN_LINKS"
