#!python

import sys
import asyncio
import importlib
from loguru import logger

COMMAND_MAP = {
    "build": "build_image",
    "deploy": "deploy_chute",
    "run": "run_chute",
    "report": "report_invocation",
    "register": "register",
}


async def main():
    """Run various commands."""
    args = sys.argv[1:]
    if not args or args[0] not in COMMAND_MAP:
        logger.error(
            f"Please specify one of the supported commands: {', '.join(list(COMMAND_MAP))}"
        )
        sys.exit(1)
    module = importlib.import_module(f"chutes.entrypoint.{args[0]}")
    await getattr(module, COMMAND_MAP[args[0]])(args[1:])


if __name__ == "__main__":
    asyncio.run(main())
