Files
project-manager/project_manager/main.py
T
2023-03-14 23:59:58 +03:00

53 lines
1.4 KiB
Python

import logging
import os
from argparse import ArgumentParser
from ast import arg
from pathlib import Path
from project_manager.logging import CustomFormatter
from project_manager.manager import ProjectManager
def run():
parser = ArgumentParser()
parser.add_argument(
"task",
nargs="?",
default="show",
choices=("show", "setup", "lint", "format", "test"),
)
parser.add_argument("-p", "--path", default=os.getcwd())
parser.add_argument("-v", "--verbose", action="count", default=1)
parser.add_argument("-q", "--quiet", action="store_true")
args = parser.parse_args()
logging_level = logging.WARNING
if args.verbose > 2:
logging_level = logging.TRACE
elif args.verbose > 1:
logging_level = logging.DEBUG
elif args.verbose > 0:
logging_level = logging.INFO
if args.quiet:
logging_level = logging.CRITICAL
if logging_level <= logging.INFO:
logging.getLogger(">").setLevel(logging.CRITICAL)
stdout_handler = logging.StreamHandler()
stdout_handler.setFormatter(CustomFormatter("%(message)s"))
logging.basicConfig(
level=logging_level,
format="%(message)s",
handlers=[stdout_handler],
)
basepath = Path(args.path)
manager = ProjectManager(basepath)
manager.run_command(args.task)
if __name__ == "__main__":
run()