52 lines
1.3 KiB
Python
52 lines
1.3 KiB
Python
import logging
|
|
import os
|
|
import sys
|
|
from argparse import ArgumentParser
|
|
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_task(args.task)
|
|
if result["failed"] > 0:
|
|
sys.exit(1)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
run()
|