From 19dd38428b4f9c87631241a79b38de3e7b321be4 Mon Sep 17 00:00:00 2001 From: Koen1999 Date: Sat, 18 Jan 2025 16:46:22 +0100 Subject: [PATCH] Show suricata-check version on help action --- suricata_check/_version.py | 2 +- suricata_check/suricata_check.py | 3 ++- suricata_check/utils/_click.py | 10 ++++++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/suricata_check/_version.py b/suricata_check/_version.py index d9b38a8..52c3daf 100644 --- a/suricata_check/_version.py +++ b/suricata_check/_version.py @@ -24,7 +24,7 @@ def get_version() -> str: git_dir = os.path.join(SURICATA_CHECK_DIR, "..", ".git") if os.path.exists(git_dir): try: - v = setuptools_git_versioning.get_version() + v = str(setuptools_git_versioning.get_version()) _logger.debug("Detected suricata-check version using setuptools_git_versioning: %s", v) except: # noqa: E722 v = __get_git_revision_short_hash() diff --git a/suricata_check/suricata_check.py b/suricata_check/suricata_check.py index 09a428c..a0025a3 100644 --- a/suricata_check/suricata_check.py +++ b/suricata_check/suricata_check.py @@ -30,7 +30,7 @@ from suricata_check import __version__, get_dependency_versions # noqa: E402 from suricata_check.checkers.interface import CheckerInterface # noqa: E402 from suricata_check.checkers.interface.dummy import DummyChecker # noqa: E402 -from suricata_check.utils._click import ClickHandler # noqa: E402 +from suricata_check.utils._click import ClickHandler, ClickHelpOption # noqa: E402 from suricata_check.utils._path import find_rules_file # noqa: E402 from suricata_check.utils.checker import check_rule_option_recognition # noqa: E402 from suricata_check.utils.checker_typing import ( # noqa: E402 @@ -153,6 +153,7 @@ show_default=True, multiple=True, ) +@click.help_option("-h", "--help", cls=ClickHelpOption) def main( # noqa: PLR0913, PLR0915 rules: str = ".", single_rule: Optional[str] = None, diff --git a/suricata_check/utils/_click.py b/suricata_check/utils/_click.py index 59c3add..aeb7ab3 100644 --- a/suricata_check/utils/_click.py +++ b/suricata_check/utils/_click.py @@ -2,6 +2,16 @@ import click +from suricata_check._version import get_version + + +class ClickHelpOption(click.HelpOption): + @staticmethod + def show_help(ctx: click.Context, param: click.Parameter, value: bool) -> None: + click.echo("suricata-check {}\n".format(get_version())) + + click.HelpOption.show_help(ctx, param, value) + class ClickHandler(logging.Handler): """Handler to color and write logging messages for the click module."""