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 CmdLdlibpath(Cmd): # export def __init__(self, parent: Parent) -> None: super().__init__(parent, 'ldlibpath', help = 'ldlibpath') def add_arguments(self, parser: ArgumentParser) -> None: super().add_arguments(parser) parser.add_argument( '-d', '--delimiter', nargs = '?', default = ':', help = 'Output words delimiter' ) 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', 'build', 'devel'], scope = Scope.Subtree, add_self = True, names_only = True, ) out = [] for m in deps: path = self.app.find_dir(m, ['/lib']) if path is not None: out.append(path) print(args.delimiter.join(out))