from argparse import ArgumentParser, Namespace from ...lib.log import NOTICE, log from .Cmd import Cmd, Parent class CmdCheck(Cmd): # export def __init__(self, parent: Parent) -> None: super().__init__( parent, 'check', help = 'Check for circular dependencies between given modules', ) def add_arguments(self, parser: ArgumentParser) -> None: super().add_arguments(parser) parser.add_argument('module', nargs = '*', help = 'Modules') parser.add_argument('-f', '--flavour', nargs = '?', default = 'build') async def _run(self, args: Namespace) -> None: if self.app.find_circular_deps(args.module, args.flavour): log(NOTICE, f'Found circular dependency in flavour {args.flavour}') exit(1) log( NOTICE, f'No circular dependency found for flavour {args.flavour} in modules:', ' '.join(args.module), )