29 lines
982 B
Python
29 lines
982 B
Python
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()
|