import logging import os import sys 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 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) result = manager.run_command(args.task) if result["failed"] > 0: sys.exit(1) if __name__ == "__main__": run()