2022-04-22 12:52:41 +01:00
|
|
|
import argparse
|
|
|
|
import logging
|
|
|
|
import sys
|
|
|
|
from os.path import basename
|
2022-05-16 11:44:03 +01:00
|
|
|
from typing import List
|
2022-04-22 12:52:41 +01:00
|
|
|
|
2022-05-08 17:20:04 +01:00
|
|
|
from app.cli.automate import AutomateCliHandler
|
2022-04-22 12:52:41 +01:00
|
|
|
from app.cli.db import DbCliHandler
|
2022-05-01 17:08:48 +01:00
|
|
|
from app.cli.list import ListCliHandler
|
2022-04-22 12:52:41 +01:00
|
|
|
|
|
|
|
|
2022-05-16 11:44:03 +01:00
|
|
|
def parse_args(argv: List[str]) -> None:
|
2022-04-22 12:52:41 +01:00
|
|
|
if basename(argv[0]) == "__main__.py":
|
|
|
|
argv[0] = "bypass"
|
|
|
|
parser = argparse.ArgumentParser()
|
2024-12-06 18:15:47 +00:00
|
|
|
parser.add_argument(
|
|
|
|
"-v", "--verbose", help="increase logging verbosity", action="store_true"
|
|
|
|
)
|
2022-04-22 12:52:41 +01:00
|
|
|
subparsers = parser.add_subparsers(title="command", help="command to run")
|
2022-05-08 17:20:04 +01:00
|
|
|
AutomateCliHandler.add_subparser_to(subparsers)
|
2022-04-22 12:52:41 +01:00
|
|
|
DbCliHandler.add_subparser_to(subparsers)
|
2022-05-01 17:08:48 +01:00
|
|
|
ListCliHandler.add_subparser_to(subparsers)
|
2022-04-22 12:52:41 +01:00
|
|
|
args = parser.parse_args(argv[1:])
|
|
|
|
if "cls" in args:
|
|
|
|
command = args.cls(args)
|
|
|
|
command.run()
|
|
|
|
else:
|
|
|
|
parser.print_help()
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
2022-06-17 13:21:35 +01:00
|
|
|
VERBOSE = "-v" in sys.argv or "--verbose" in sys.argv
|
2024-12-06 18:15:47 +00:00
|
|
|
logging.basicConfig(level=logging.DEBUG if VERBOSE else logging.INFO)
|
2022-04-22 12:52:41 +01:00
|
|
|
logging.debug("Arguments: %s", sys.argv)
|
|
|
|
parse_args(sys.argv)
|