#!/usr/bin/env python3 """Regenerate firmware/manifest.json SHA-256 entries.""" from pathlib import Path import hashlib import json import sys ROOT = Path(__file__).resolve().parents[1] OUT = ROOT / "firmware" / "manifest.json" FILES = [ ("firmware/launcher.py", "/launcher.py"), ("firmware/app/__init__.py", "/app/__init__.py"), ("firmware/app/digital_probe.py", "/app/digital_probe.py"), ("firmware/app/main.py", "/app/main.py"), ] def sha256(path): h = hashlib.sha256() with open(path, "rb") as f: for chunk in iter(lambda: f.read(65536), b""): h.update(chunk) return h.hexdigest() def main(): release = sys.argv[1] if len(sys.argv) > 1 else "dev" entries = [] for source, target in FILES: entries.append({ "source": source, "target": target, "sha256": sha256(ROOT / source), }) OUT.write_text(json.dumps({ "schema": 1, "release": release, "files": entries, }, indent=2) + "\n", encoding="utf-8") print("wrote", OUT) if __name__ == "__main__": main()