diff --git a/src/python/jw/pkg/cmds/projects/CmdRequiredOsPkg.py b/src/python/jw/pkg/cmds/projects/CmdRequiredOsPkg.py index c19ebb47..9aec61dc 100644 --- a/src/python/jw/pkg/cmds/projects/CmdRequiredOsPkg.py +++ b/src/python/jw/pkg/cmds/projects/CmdRequiredOsPkg.py @@ -1,5 +1,7 @@ from __future__ import annotations +import re + from typing import TYPE_CHECKING, override from ...App import Scope @@ -36,6 +38,14 @@ class CmdRequiredOsPkg(Cmd): # export default = False, help = 'Put double quotes around each listed dependency', ) + parser.add_argument( + '--pkg-relations', + default = 'requires', + help = ( + 'Relations between packages to take into consideration, ' + 'comma or space separated' + ) + ) @override async def _run(self, args: Namespace) -> None: @@ -48,9 +58,10 @@ class CmdRequiredOsPkg(Cmd): # export if 'release' in flavours: flavours |= set(['run', 'devel', 'build']) log(DEBUG, 'flavours = ' + args.flavours) + relations = tuple(re.split(r'[,\s]+', args.pkg_relations)) deps = self.app.get_project_refs( modules, - ['pkg.requires.jw'], + [f'pkg.{rel}.jw' for rel in relations], list(flavours), scope = Scope.Subtree, add_self = True, diff --git a/test/integration/jw-pkg/help/test-expected.txt b/test/integration/jw-pkg/help/test-expected.txt index c7b895c9..2ab2fac0 100644 --- a/test/integration/jw-pkg/help/test-expected.txt +++ b/test/integration/jw-pkg/help/test-expected.txt @@ -763,20 +763,24 @@ options: (default: None) ============= Running: jw-pkg.py -t ../../../.. --log-level info projects required-os-pkg --help usage: jw-pkg.py projects required-os-pkg [-h] [--skip-excluded] [--quote] + [--pkg-relations PKG_RELATIONS] flavours [modules ...] List distribution packages required for a package positional arguments: - flavours Dependency flavours - modules Modules (default: None) + flavours Dependency flavours + modules Modules (default: None) options: - -h, --help show this help message and exit - --skip-excluded Output empty prerequisite list for excluded modules - (default: False) - --quote Put double quotes around each listed dependency (default: - False) + -h, --help show this help message and exit + --skip-excluded Output empty prerequisite list for excluded modules + (default: False) + --quote Put double quotes around each listed dependency + (default: False) + --pkg-relations PKG_RELATIONS + Relations between packages to take into consideration, + comma or space separated (default: requires) ============= Running: jw-pkg.py -t ../../../.. --log-level info projects summary --help usage: jw-pkg.py projects summary [-h] [module ...]