neue Fragn
This commit is contained in:
1 parent
07dbc01c92
commit
6a8035cced
16 files changed
+3422
-16
No files matched your search
@@ -5,7 +5,7 @@
|
||||
@author Björn Runden <br@runden.de>
|
||||
@owner Björn Runden <br@runden.de>
|
||||
@assist KI-unterstützt (Claude Opus 5.5), geprüft von Björn Runden <br@runden.de>
|
||||
@version 0.3.0 (29.10.2026)
|
||||
@version 0.3.1 (30.10.2026)
|
||||
@usage build_bank.py [-d] [-q] [-n] [-c] [--approved-only] [-o js/bank.js] [-e [DIR]] [-b [FILE]]
|
||||
|
||||
Aufbau von data/: je Prüfung ein Ordner mit exam.json und beliebig vielen questions_*.json (Quelltext, Klartext).
|
||||
@@ -238,7 +238,9 @@ def write_bank(exams: list[dict], output: Path) -> None:
|
||||
|
||||
def export_site(target: Path, dry_run: bool) -> None:
|
||||
"""Kopiert nur die Laufzeitdateien (ohne data/, tools/, tests/) nach target.
|
||||
Ein vorhandenes Ziel wird nur ersetzt, wenn es von hier stammt (Markierungsdatei)."""
|
||||
In ein vorhandenes Ziel wird nur exportiert, wenn es von hier stammt (Markierungsdatei). Ersetzt werden
|
||||
ausschließlich EXPORT_ITEMS; andere Dateien im Ziel (z. B. abgelegte Pakete) bleiben unangetastet, und das
|
||||
Verzeichnis selbst bleibt bestehen (ein darin laufender http.server liefert weiter aus)."""
|
||||
target = target.resolve()
|
||||
if target == BASE or BASE in target.parents and target.name in EXPORT_ITEMS + ["data", "tools", "tests"]:
|
||||
raise ValueError(f"Export-Ziel {target} liegt im Quellbaum")
|
||||
@@ -247,14 +249,16 @@ def export_site(target: Path, dry_run: bool) -> None:
|
||||
if dry_run:
|
||||
log.info("Trockenlauf: würde %s nach %s exportieren", ", ".join(EXPORT_ITEMS), target)
|
||||
return
|
||||
if target.exists():
|
||||
shutil.rmtree(target)
|
||||
target.mkdir(parents=True)
|
||||
target.mkdir(parents=True, exist_ok=True)
|
||||
for item in EXPORT_ITEMS:
|
||||
src = BASE / item
|
||||
(shutil.copytree if src.is_dir() else shutil.copy2)(src, target / item)
|
||||
(target / EXPORT_MARKER).write_text("Export von simulator/tools/build_bank.py – Verzeichnis wird beim nächsten Export ersetzt\n",
|
||||
encoding="utf-8")
|
||||
src, dst = BASE / item, target / item
|
||||
if dst.is_dir() and not dst.is_symlink():
|
||||
shutil.rmtree(dst)
|
||||
elif dst.exists() or dst.is_symlink():
|
||||
dst.unlink()
|
||||
(shutil.copytree if src.is_dir() else shutil.copy2)(src, dst)
|
||||
(target / EXPORT_MARKER).write_text("Export von simulator/tools/build_bank.py – beim nächsten Export werden nur "
|
||||
+ ", ".join(EXPORT_ITEMS) + " ersetzt, andere Dateien bleiben\n", encoding="utf-8")
|
||||
log.info("Export nach %s geschrieben (Start: python3 -m http.server 8080 -d %s)", target, target)
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user