Something went wrong. Try again.
atproto Thingiverse but good
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758#!/usr/bin/env python3"""Validate the GC workspace rail before and after final bookmark cleanup."""from __future__ import annotations
import argparseimport subprocessimport sys
RUN_ID = "gc-2026-08-01-catchup"PARENT = "gc-2026-08-01-catchup"CHILDREN = [f"{PARENT}-task-{unit}" for unit in "ABCDEFG"]
def jj(*args: str) -> str: result = subprocess.run(["jj", *args], text=True, capture_output=True) if result.returncode: raise RuntimeError(result.stderr.strip() or result.stdout.strip()) return result.stdout
def main() -> int: parser = argparse.ArgumentParser() parser.add_argument("run_id", nargs="?", default=RUN_ID) parser.add_argument("--parent", default=PARENT) parser.add_argument("--pre-forget", action="store_true") parser.add_argument("--post-forget", action="store_true") parser.add_argument("--self-test", action="store_true") args = parser.parse_args() try: if args.run_id != RUN_ID or args.parent != PARENT: raise RuntimeError("unexpected run id or parent") if args.self_test: print("validate-gc-jj-state self-test passed") return 0 workspaces = jj("workspace", "list") if args.pre_forget: for name in [PARENT, *CHILDREN]: if name not in workspaces: raise RuntimeError(f"missing expected workspace {name}") if PARENT not in jj("bookmark", "list"): raise RuntimeError(f"missing parent bookmark {PARENT}") print(f"JJ pre-forget state valid: {RUN_ID}") elif args.post_forget: for name in [PARENT, *CHILDREN]: if name in workspaces: raise RuntimeError(f"workspace still present after forget: {name}") print(f"JJ post-forget state valid: {RUN_ID}") else: raise RuntimeError("choose --pre-forget or --post-forget") except (RuntimeError, FileNotFoundError) as exc: print(f"JJ state invalid: {exc}", file=sys.stderr) return 1 return 0
if __name__ == "__main__": raise SystemExit(main())