#!/usr/bin/env python3
"""生成 manifest.json：逐文件 sha256，便于需求方核对包内容未被改动。"""
import hashlib, json, sys
from pathlib import Path

def main(pkg):
    pkg = Path(pkg)
    skip = {"manifest.json", "DELIVERY_GATE.json", "page.json"}
    files = {}
    for p in sorted(pkg.rglob("*")):
        if not p.is_file() or p.name in skip or "__pycache__" in p.parts: continue
        rel = str(p.relative_to(pkg))
        files[rel] = {"sha256": hashlib.sha256(p.read_bytes()).hexdigest(), "bytes": p.stat().st_size}
    (pkg / "manifest.json").write_text(json.dumps(
        {"package": pkg.name, "n_files": len(files), "files": files}, indent=1))
    print("manifest files:", len(files))

if __name__ == "__main__":
    main(*sys.argv[1:])
