diff --git a/scripts/agents/run.sh b/scripts/agents/run.sh old mode 100644 new mode 100755 index 91b4cd3..6642337 --- a/scripts/agents/run.sh +++ b/scripts/agents/run.sh @@ -12,98 +12,83 @@ 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 status --porcelain || true) > "$before_status_file" 2>/dev/null || true +popd >/dev/null || true + usage() { cat <&2; usage; exit 2 ;; + for a in \ + runner_agent.sh quality_tech.sh qualite_formelle.sh fondation_agent.sh structure_agent.sh \ + tests_agent.sh performance_agent.sh documentation_agent.sh donnees_csv_agent.sh \ + documents_bureautiques_agent.sh security_agent.sh deployment_agent.sh dependances_agent.sh \ + compilation_agent.sh resolution_agent.sh ssh_scripts_agent.sh frontend_agent.sh \ + open_source_agent.sh gitea_agent.sh versionnage_agent.sh sync_template_agent.sh derogations_locales_agent.sh; do + "$DIR/$a" "$TARGET_DIR" "$OUTPUT_DIR" || true + done ;; + -h|--help) usage; exit 0 ;; + *) echo "Agent inconnu: $AGENT" >&2; usage; exit 2 ;; esac +# Capture état après et rapport +pushd "$TARGET_DIR" >/dev/null || true +(git 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" + git diff --name-status || true +} > "$changes_report" +popd >/dev/null || true + echo "Agents terminés → $OUTPUT_DIR" diff --git a/scripts/local/precommit.sh b/scripts/local/precommit.sh index 8c66efd..6a4d85d 100644 --- a/scripts/local/precommit.sh +++ b/scripts/local/precommit.sh @@ -4,12 +4,13 @@ set -euo pipefail ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" cd "$ROOT_DIR/.." -# Lint Markdown (best effort) -if command -v npx >/dev/null 2>&1; then - npx -y markdownlint-cli "**/*.md" --ignore "archive/**" || true +# Exécuter les agents via le conteneur CI (Docker Compose) +if command -v docker >/dev/null 2>&1; then + docker compose -f docker-compose.ci.yml build + RUNNER_MODE="agents" docker compose -f docker-compose.ci.yml up --abort-on-container-exit +else + echo "Docker requis pour exécuter les agents via conteneur." >&2 + exit 2 fi -# Agents rapides sur fichiers modifiés -AUTO_FIX="${AUTO_FIX:-1}" SCOPE="${SCOPE:-changed}" scripts/agents/run.sh - -echo "[pre-commit] OK" +echo "[pre-commit] OK (agents via Docker)"