# -*- coding: utf-8 -*- from argparse import Namespace, ArgumentParser from ...lib.log import * from ..Cmd import Cmd from ..CmdProjects import CmdProjects class CmdCheck(Cmd): # export def __init__(self, parent: CmdProjects) -> 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: path = self.app.find_circular_deps(args.module, args.flavour) if path: print(f'Found circular dependency in flavour {args.flavour}:', ' -> '.join(path)) exit(1) print(f'No circular dependency found for flavour {args.flavour} in modules:', ' '.join(args.module))