""" Entry point: python -m e2e_framework [options] DEPRECATED — delegates to `validate run` (wise-validator + sand-boxer). Prefer: make e2e REPO= (from the-custodian/) """ from __future__ import annotations import argparse import os import sys from pathlib import Path from .shim import run_via_validate def main() -> None: parser = argparse.ArgumentParser( description="[DEPRECATED] Run e2e tests — delegates to validate run" ) parser.add_argument("repo_path", help="Path to the repo containing e2e/e2e.yml") parser.add_argument( "--host", default=os.environ.get("RAILIANCE01_HOST", ""), help="Sandbox host. Env: RAILIANCE01_HOST or SANDBOXER_HOST", ) parser.add_argument( "--user", default=os.environ.get("RAILIANCE01_USER", "root"), help="SSH user. Env: RAILIANCE01_USER → SANDBOXER_SSH_USER", ) parser.add_argument( "--key", default=os.environ.get("RAILIANCE01_KEY"), help="SSH private key. Env: RAILIANCE01_KEY → SANDBOXER_SSH_KEY", ) parser.add_argument( "--keep", action="store_true", help="Keep sandbox after run", ) parser.add_argument( "--workstream-id", default=None, help="State Hub workstream ID for progress event", ) parser.add_argument( "--no-report", action="store_true", help="Skip posting results to State Hub", ) args = parser.parse_args() repo_path = Path(args.repo_path).expanduser().resolve() if not repo_path.exists(): print(f"ERROR: repo path does not exist: {repo_path}", file=sys.stderr) sys.exit(1) exit_code = run_via_validate( repo_path, host=args.host or None, keep=args.keep, workstream_id=args.workstream_id, no_report=args.no_report, ssh_user=args.user if args.user != "root" else os.environ.get("RAILIANCE01_USER"), ssh_key=args.key, ) sys.exit(exit_code)