Mindcraft's picture
Publish frozen reproduction executor image source
17d5066 verified
Raw
History Blame Contribute Delete
1.11 kB
#!/usr/bin/env python3
"""Write a deterministic privacy receipt for explicitly selected local roots."""
from __future__ import annotations
import argparse
import json
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "src"))
from repro_control.privacy import scan_paths, write_receipt
def main() -> int:
parser = argparse.ArgumentParser()
parser.add_argument("--checkout", type=Path, required=True)
parser.add_argument("--root", type=Path, action="append", required=True)
parser.add_argument("--intended-remote-map", type=Path, required=True)
parser.add_argument("--output", type=Path, required=True)
args = parser.parse_args()
mapping = json.loads(args.intended_remote_map.read_text())
receipt = scan_paths(args.root, relative_to=args.checkout, intended_remote_map=mapping)
write_receipt(args.output, receipt, require_clean=False)
print(json.dumps({"exit_code": receipt["exit_code"], "findings": len(receipt["findings"])}))
return receipt["exit_code"]
if __name__ == "__main__":
raise SystemExit(main())