Validate & Repair¶
Vertrag zwischen validate.sh, repair.sh und der GUI. Reparieren ≠ neu installieren.
Validate¶
Pflichtverhalten¶
recipe_hooks::load validate- Strukturierte Zeilen (
core/recipe-validate.sh): OK: …(stdout)WARN: …(stdout) — kein Exit-FehlerFAIL: …(stderr) — zählt als Fehler- Optional GUI-Fortschritt:
output::progress_begin/tick/done - Exit 0 wenn keine
FAIL; Exit 1 bei mindestens einemFAIL(Rezept zählt Failures selbst)
Empfohlene Checks¶
Nutze core/recipe-validate.sh:
recipe_validate::prefix_initialized "$WINEPREFIX" || failures=$((failures+1))
recipe_validate::windows_version "$WINEPREFIX" || true # oder fail je nach Rezept
recipe_validate::ok "Prefix vorhanden"
App-spezifisch: EXE-Pfade, Portable-Root, Fix-Dateien (Steam), Versionsgarantie.
Version¶
Bei version_guaranteed + version_detect in recipe.yml: Abweichung oft als WARN (nicht zwingend hart failen — je nach Rezeptpolitik). Lint verlangt version_detect, wenn version_guaranteed gesetzt ist.
Repair¶
Pflichtverhalten¶
recipe_hooks::load repair- Zuerst
validate.sh(oder äquivalente Checks) - Wenn alles OK: höchstens Sync (Fonts/Grafik/Desktop-Refresh)
- Wenn FAIL: nur fehlende Komponenten nachziehen
- Erneut validieren
- Exit 0 Erfolg; Exit 11 unvollständig (GUI-Retry möglich)
Erlaubt / Verboten¶
| Erlaubt | Verboten |
|---|---|
recipe_winetricks::run für fehlende Pakete |
Volles install_steps / Neuinstallation |
recipe_win10::ensure |
winetricks winecfg |
recipe_vcrun::ensure / recipe_dotnet::ensure |
System-Wine-Fallback |
wine_runtime::deploy_proton_graphics_dlls |
winetricks dxvk |
Desktop refresh_if_present |
load kill |
Muster (Pseudocode)¶
recipe_hooks::load repair
# … validate …
if [[ $failures -eq 0 ]]; then
# optional: fonts/graphics sync
exit 0
fi
# gezielte Fixes nur für FAIL-Punkte
# validate erneut
Sonderfälle¶
- WISO: fehlender Prefix → Fehler „bitte Installieren“, kein Repair-from-scratch
- Photoshop: oft Fonts/Grafik/Post-Install auch bei grünem Validate syncen
CI¶
make recipes-check verlangt validate: und repair: in jeder recipe.yml.
Manuell: bewusst etwas kaputt machen → Reparieren → Validate grün.