majuna/app/cli/__main__.py

35 lines
1.1 KiB
Python
Raw Normal View History

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
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()
parser.add_argument("-v", "--verbose", help="increase logging verbosity", action="store_true")
subparsers = parser.add_subparsers(title="command", help="command to run")
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
2022-04-22 12:52:41 +01:00
logging.basicConfig(
2022-06-17 13:21:35 +01:00
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)