from __future__ import annotations from ...App import Scope from .Cmd import Cmd, Parent from typing import TYPE_CHECKING if TYPE_CHECKING: from argparse import ArgumentParser, Namespace class CmdPath(Cmd): # export def __init__(self, parent: Parent) -> None: super().__init__(parent, 'path', help = 'path') def add_arguments(self, parser: ArgumentParser) -> None: super().add_arguments(parser) parser.add_argument('module', nargs = '*', help = 'Modules') async def _run(self, args: Namespace) -> None: deps = self.app.get_project_refs( args.module, ['pkg.requires.jw'], 'run', scope = Scope.Subtree, add_self = True, names_only = True, ) out = [] for m in deps: path = self.app.find_dir(m, ['/bin']) if path is not None: out.append(path) print(':'.join(out))