import argparse, json, pathlib, subprocess
p = argparse.ArgumentParser()
p.add_argument("workspace", type=pathlib.Path)
p.add_argument("--unconfigured", action="store_true")
p.add_argument("--exceptions", action="store_true")
a = p.parse_args()
a.workspace.mkdir(parents=True, exist_ok=False)
(a.workspace / "deny-proof.txt").write_text("Disposable permission proof\n")
if not a.unconfigured:
    (a.workspace / "opencode.json").write_text(json.dumps({"permission": {"shell": {"*": "allow", "git push *": "ask", "rm *": "deny"}}}, indent=2))
if a.exceptions:
    cfg = a.workspace / "opencode.json"
    data = json.loads(cfg.read_text())
    data["permission"]["shell"]["rm -f safe-proof.txt"] = "allow"
    cfg.write_text(json.dumps(data, indent=2))
    (a.workspace / "safe-proof.txt").write_text("Disposable ordered exception\n")
for args in [["init", "-q", "-b", "main"], ["add", "."], ["-c", "user.name=Proof", "-c", "user.email=proof@example.invalid", "commit", "-qm", "Seed permission proof"]]:
    subprocess.run(["git", "-C", str(a.workspace), *args], check=True)
