From f275aa97158f48a28fe564fd015bf6a1b17cbd47 Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Mon, 1 Jun 2026 09:18:34 +0200 Subject: [PATCH] cmds.projects.CmdCheck: Move to .check.CmdDep Move CmdCheck to .check.CmdDep, to make room for more checks under the same "check" parent command. Signed-off-by: Jan Lindemann --- src/python/jw/pkg/cmds/projects/CmdCheck.py | 23 ++++++--------- src/python/jw/pkg/cmds/projects/check/Cmd.py | 14 ++++++++++ .../jw/pkg/cmds/projects/check/CmdDep.py | 28 +++++++++++++++++++ .../jw/pkg/cmds/projects/check/Makefile | 5 ++++ .../jw/pkg/cmds/projects/check/__init__.py | 9 ++++++ 5 files changed, 65 insertions(+), 14 deletions(-) create mode 100644 src/python/jw/pkg/cmds/projects/check/Cmd.py create mode 100644 src/python/jw/pkg/cmds/projects/check/CmdDep.py create mode 100644 src/python/jw/pkg/cmds/projects/check/Makefile create mode 100644 src/python/jw/pkg/cmds/projects/check/__init__.py diff --git a/src/python/jw/pkg/cmds/projects/CmdCheck.py b/src/python/jw/pkg/cmds/projects/CmdCheck.py index 9a8ee871..695254cf 100644 --- a/src/python/jw/pkg/cmds/projects/CmdCheck.py +++ b/src/python/jw/pkg/cmds/projects/CmdCheck.py @@ -1,6 +1,7 @@ -from argparse import ArgumentParser, Namespace +import sys + +from argparse import ArgumentParser -from ...lib.log import NOTICE, log from .Cmd import Cmd, Parent class CmdCheck(Cmd): # export @@ -9,20 +10,14 @@ class CmdCheck(Cmd): # export super().__init__( parent, 'check', - help = 'Check for circular dependencies between given modules', + help = 'Run miscellaneous code and project checks', ) + self.load_subcommands() 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: - if self.app.find_circular_deps(args.module, args.flavour): - log(NOTICE, f'Found circular dependency in flavour {args.flavour}') - exit(1) - log( - NOTICE, - f'No circular dependency found for flavour {args.flavour} in modules:', - ' '.join(args.module), - ) + async def _run(self, args): + # Missing subcommand + self.parser.print_help() + sys.exit(1) diff --git a/src/python/jw/pkg/cmds/projects/check/Cmd.py b/src/python/jw/pkg/cmds/projects/check/Cmd.py new file mode 100644 index 00000000..1d2d4842 --- /dev/null +++ b/src/python/jw/pkg/cmds/projects/check/Cmd.py @@ -0,0 +1,14 @@ +from __future__ import annotations + +from argparse import ArgumentParser + +from ....CmdBase import CmdBase +from ..CmdCheck import CmdCheck as Parent + +class Cmd(CmdBase): # export + + def __init__(self, parent: Parent, name: str, help: str) -> None: + super().__init__(parent, name, help) + + def add_arguments(self, parser: ArgumentParser) -> None: + super().add_arguments(parser) diff --git a/src/python/jw/pkg/cmds/projects/check/CmdDep.py b/src/python/jw/pkg/cmds/projects/check/CmdDep.py new file mode 100644 index 00000000..3a322840 --- /dev/null +++ b/src/python/jw/pkg/cmds/projects/check/CmdDep.py @@ -0,0 +1,28 @@ +from argparse import ArgumentParser, Namespace + +from ....lib.log import NOTICE, log +from .Cmd import Cmd, Parent + +class CmdDep(Cmd): # export + + def __init__(self, parent: Parent) -> None: + super().__init__( + parent, + 'deps', + 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: + if self.app.find_circular_deps(args.module, args.flavour): + log(NOTICE, f'Found circular dependency in flavour {args.flavour}') + exit(1) + log( + NOTICE, + f'No circular dependency found for flavour {args.flavour} in modules:', + ' '.join(args.module), + ) diff --git a/src/python/jw/pkg/cmds/projects/check/Makefile b/src/python/jw/pkg/cmds/projects/check/Makefile new file mode 100644 index 00000000..c07b11c7 --- /dev/null +++ b/src/python/jw/pkg/cmds/projects/check/Makefile @@ -0,0 +1,5 @@ +TOPDIR = ../../../../../../.. +PY_UPDATE_INIT_PY = false + +include $(TOPDIR)/make/proj.mk +include $(JWBDIR)/make/py-mod.mk diff --git a/src/python/jw/pkg/cmds/projects/check/__init__.py b/src/python/jw/pkg/cmds/projects/check/__init__.py new file mode 100644 index 00000000..1e695f4e --- /dev/null +++ b/src/python/jw/pkg/cmds/projects/check/__init__.py @@ -0,0 +1,9 @@ +from ....lib.init import detect_modules + +__all__ = detect_modules( + package_name = __name__, + package_path = __path__, + namespace = globals(), + prefix = 'Cmd', + skip = {'Cmd'}, +) # pyright: ignore[reportUnsupportedDunderAll]