#!/usr/bin/env bash set -euo pipefail # Chargement env utilisateur (~/.4nk_template/.env) "$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)/env/ensure_env.sh" || true if [[ -f "${HOME}/.4nk_template/.env" ]]; then set -a . "${HOME}/.4nk_template/.env" set +a fi DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" TARGET_DIR="${1:-.}" OUTPUT_DIR="${2:-tests/reports/agents}" AGENT="${3:-all}" mkdir -p "$OUTPUT_DIR" # Capture état avant pushd "$TARGET_DIR" >/dev/null || true before_status_file="$OUTPUT_DIR/.before_status.txt" after_status_file="$OUTPUT_DIR/.after_status.txt" changes_report="$OUTPUT_DIR/changes_applied.md" (git -C "$TARGET_DIR" status --porcelain || true) > "$before_status_file" 2>/dev/null || true popd >/dev/null || true usage() { cat <&2; usage; exit 2 ;; esac # Capture état après et rapport pushd "$TARGET_DIR" >/dev/null || true (git -C "$TARGET_DIR" status --porcelain || true) > "$after_status_file" 2>/dev/null || true { echo "# Modifications appliquées par les agents" echo echo "## Fichiers modifiés/non suivis (avant)" if [[ -s "$before_status_file" ]]; then sed "s/^/ /" "$before_status_file"; else echo " (aucun)"; fi echo echo "## Fichiers modifiés/non suivis (après)" if [[ -s "$after_status_file" ]]; then sed "s/^/ /" "$after_status_file"; else echo " (aucun)"; fi echo echo "## Diff par rapport au dernier commit" if git -C "$TARGET_DIR" rev-parse --is-inside-work-tree >/dev/null 2>&1; then git -C "$TARGET_DIR" diff --name-status || true else echo "(pas un dépôt git, diff ignoré)" fi } > "$changes_report" popd >/dev/null || true echo "Agents terminés → $OUTPUT_DIR" # Affichage des rapports générés echo echo "=== RAPPORTS GÉNÉRÉS ===" if [[ -d "$OUTPUT_DIR" ]]; then for report in "$OUTPUT_DIR"/*.md; do if [[ -f "$report" ]]; then echo echo "📄 $(basename "$report"):" echo "----------------------------------------" cat "$report" echo "----------------------------------------" fi done else echo "Aucun rapport généré dans $OUTPUT_DIR" fi echo "=== FIN DES RAPPORTS ==="