fix: publish the games index whole or not at all

install/games/, the event schema, the launcher index and wiki/installer.md were truncated at their final name, so an interrupted run left a committed-looking partial JSON document. They now go through write_text_atomic.
This commit is contained in:
Abdessamad Derraz committed 2026-11-05 19:16:59 +01:00
1 parent 80f736c167
commit 891741433b
5 files changed
+31 -4

No files matched your search

+3 -1
View File
@@ -13,6 +13,8 @@ import json
import sys
from pathlib import Path
from artifacts import write_text_atomic
ROOT = Path(__file__).resolve().parent.parent
OUTPUT = ROOT / "schemas" / "install-events.schema.json"
@@ -105,7 +107,7 @@ def main(argv: list[str] | None = None) -> int:
print(f"{args.output} differs from EVENT_KEYS: run "
"python scripts/generate_event_schema.py", file=sys.stderr)
return 1
args.output.write_text(text, encoding="utf-8")
write_text_atomic(str(args.output), text)
print(f"Wrote {args.output}")
return 0
+2 -1
View File
@@ -59,6 +59,7 @@ from romfolders import ( # noqa: E402
folder_names,
load_setups,
)
from artifacts import write_text_atomic # noqa: E402
from safeparse import yaml_load # noqa: E402
import install # noqa: E402
@@ -635,7 +636,7 @@ def main() -> int:
path.unlink()
for path in changed:
path.parent.mkdir(parents=True, exist_ok=True)
path.write_text(files[path], encoding="utf-8")
write_text_atomic(str(path), files[path])
print(f"{len(changed)} written, {len(stale)} removed")
return 1 if failures else 0
+3 -1
View File
@@ -45,6 +45,8 @@ import zipfile
from pathlib import Path, PurePosixPath
from typing import Callable
from artifacts import write_text_atomic
ROOT = Path(__file__).resolve().parent.parent
PAGE = ROOT / "wiki" / "installer.md"
INSTALLER = ROOT / "install.py"
@@ -643,7 +645,7 @@ def main(argv: list[str] | None = None) -> int:
print(f"{args.page} differs from install.py and install/*.json: run "
"python scripts/generate_installer_doc.py", file=sys.stderr)
return 1
args.page.write_text(text, encoding="utf-8")
write_text_atomic(str(args.page), text)
print(f"Wrote {args.page}")
return 0
+2 -1
View File
@@ -22,6 +22,7 @@ import json
import sys
from pathlib import Path
from artifacts import write_text_atomic
from build_port import (
BATOCERA_ZIP,
MUOS_APP,
@@ -121,7 +122,7 @@ def main(argv: list[str] | None = None) -> int:
"python scripts/generate_launcher_index.py", file=sys.stderr)
return 1
args.output.parent.mkdir(parents=True, exist_ok=True)
args.output.write_text(text, encoding="utf-8")
write_text_atomic(str(args.output), text)
print(f"Wrote {args.output}")
return 0