from __future__ import annotations import argparse from pathlib import Path from beta_release_lib import load_side_manifest, validate_client_stage, validate_server_stage def main() -> None: parser = argparse.ArgumentParser() parser.add_argument("--client-stage", type=Path) parser.add_argument("--server-stage", type=Path) parser.add_argument("--manifest", required=True, type=Path) parser.add_argument("--world") args = parser.parse_args() if (args.client_stage is None) == (args.server_stage is None): parser.error("provide exactly one of --client-stage or --server-stage") manifest = load_side_manifest(args.manifest) if args.client_stage is not None: validate_client_stage(args.client_stage, manifest) else: if args.world is None: parser.error("--world is required with --server-stage") validate_server_stage(args.server_stage, manifest, args.world) if __name__ == "__main__": main()