fix: restore-all.sh bewahrt PROTOKOLL.md standardmäßig

Neues Flag --reset-protokoll für expliziten Reset auf leere Templates.
Ohne Flag bleiben ausgefüllte Protokolle erhalten.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Dieter Schlüter 2026-05-29 20:53:01 +02:00
commit a86d8b39ad

View file

@ -2,11 +2,20 @@
# Stellt den Ausgangszustand aller Examples wieder her. # Stellt den Ausgangszustand aller Examples wieder her.
# Löscht erzeugte Sub-Repos, restauriert Quelldateien aus dem Haupt-Repo # Löscht erzeugte Sub-Repos, restauriert Quelldateien aus dem Haupt-Repo
# und bereinigt Build-Artefakte. # und bereinigt Build-Artefakte.
#
# Optionen:
# --reset-protokoll Setzt auch PROTOKOLL.md auf leere Templates zurück.
# Standard: PROTOKOLL.md bleibt unangetastet.
set -euo pipefail set -euo pipefail
ROOT="$(git -C "$(dirname "$0")" rev-parse --show-toplevel)" ROOT="$(git -C "$(dirname "$0")" rev-parse --show-toplevel)"
EXAMPLES="$ROOT/examples" EXAMPLES="$ROOT/examples"
RESET_PROTOKOLL=false
for arg in "$@"; do
[ "$arg" = "--reset-protokoll" ] && RESET_PROTOKOLL=true
done
echo "Stelle Examples-Ausgangszustand wieder her..." echo "Stelle Examples-Ausgangszustand wieder her..."
@ -16,8 +25,17 @@ for dir in python-calculator rust-wordcount go-fibonacci c-linkedlist; do
rm -rf "$path/.git" rm -rf "$path/.git"
echo " ✓ Sub-Repo entfernt: $dir" echo " ✓ Sub-Repo entfernt: $dir"
fi fi
git -C "$ROOT" checkout -- "examples/$dir/" # Quelldateien restaurieren — PROTOKOLL.md standardmäßig ausnehmen
echo " ✓ Dateien restauriert: $dir" while IFS= read -r file; do
git -C "$ROOT" checkout -- "$file"
done < <(git -C "$ROOT" ls-files "examples/$dir/" \
| grep -v '/PROTOKOLL\.md$')
if $RESET_PROTOKOLL; then
git -C "$ROOT" checkout -- "examples/$dir/PROTOKOLL.md"
echo " ✓ Dateien restauriert: $dir (inkl. PROTOKOLL.md)"
else
echo " ✓ Dateien restauriert: $dir (PROTOKOLL.md behalten)"
fi
done done
# Build-Artefakte und pi-coder-Laufzeitartefakte bereinigen # Build-Artefakte und pi-coder-Laufzeitartefakte bereinigen
@ -29,4 +47,9 @@ find "$EXAMPLES" -name "TASK.md" -delete 2>/dev/null || true
echo "" echo ""
echo "Fertig. Alle Examples sind im Ausgangszustand." echo "Fertig. Alle Examples sind im Ausgangszustand."
echo "git status zeigt examples/ als clean (wenn kein PROTOKOLL.md verändert wurde)." if $RESET_PROTOKOLL; then
echo "PROTOKOLL.md-Dateien wurden auf leere Templates zurückgesetzt."
else
echo "PROTOKOLL.md-Dateien wurden nicht verändert."
echo "Für leere Templates: $0 --reset-protokoll"
fi