cmds.projects.CmdRequiredOsPkg: Add --pkg-relations

The OS package list of required-os-pkg, like the build closure, is derived
from the [pkg.requires.jw] section only, hard-coded in _run(). Add a
--pkg-relations option to required-os-pkg, mirroring the one of CmdBuild.

Signed-off-by: Jan Lindemann <jan@janware.com>
Assisted-by: unsloth/Qwen3.8-27B-GGUF:Q4_K_M with pi.dev v0.86.1
This commit is contained in:
Jan Lindemann 2026-09-22 06:12:29 +02:00
commit 32dd507cf5
Signed by: Jan Lindemann
GPG key ID: 3750640C9E25DD61
2 changed files with 23 additions and 8 deletions

View file

@ -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,

View file

@ -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 ...]