majuna/app/cli/__main__.py

35 lines
1.1 KiB
Python

import argparse
import logging
import sys
from os.path import basename
from typing import List
from app.cli.automate import AutomateCliHandler
from app.cli.db import DbCliHandler
from app.cli.list import ListCliHandler
def parse_args(argv: List[str]) -> None:
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)
DbCliHandler.add_subparser_to(subparsers)
ListCliHandler.add_subparser_to(subparsers)
args = parser.parse_args(argv[1:])
if "cls" in args:
command = args.cls(args)
command.run()
else:
parser.print_help()
if __name__ == "__main__":
VERBOSE = "-v" in sys.argv or "--verbose" in sys.argv
logging.basicConfig(level=logging.DEBUG if VERBOSE else logging.INFO)
logging.debug("Arguments: %s", sys.argv)
parse_args(sys.argv)