From eca95a764125e0e0802fe2878ce1a4e131ddea39 Mon Sep 17 00:00:00 2001 From: Nils Philippsen Date: Aug 02 2023 10:13:13 +0000 Subject: Build and package man page in spec file This exposes the argument parser object in a separate function so argparse-manpage can use it. Fixes: #303 Signed-off-by: Nils Philippsen --- diff --git a/python-rpmautospec.spec b/python-rpmautospec.spec index 4a7ea18..737182e 100644 --- a/python-rpmautospec.spec +++ b/python-rpmautospec.spec @@ -22,6 +22,7 @@ URL: https://pagure.io/fedora-infra/rpmautospec Source0: https://releases.pagure.org/fedora-infra/rpmautospec/rpmautospec-%{version}.tar.gz BuildArch: noarch +BuildRequires: argparse-manpage BuildRequires: git # the langpacks are needed for tests BuildRequires: glibc-langpack-de @@ -31,6 +32,7 @@ BuildRequires: python%{python3_pkgversion}-devel >= 3.9.0 BuildRequires: python%{python3_pkgversion}-setuptools %endif BuildRequires: koji +BuildRequires: python%{python3_pkgversion}-argparse-manpage BuildRequires: python%{python3_pkgversion}-babel BuildRequires: python%{python3_pkgversion}-koji BuildRequires: python%{python3_pkgversion}-pygit2 @@ -130,6 +132,16 @@ install -m 0644 koji_plugins/rpmautospec_builder.py \ mkdir -p %{buildroot}%{rpmmacrodir} install -m 644 rpm/macros.d/macros.rpmautospec %{buildroot}%{rpmmacrodir}/ +# Man page +mkdir -p %{buildroot}%{_mandir}/man1 +PYTHONPATH="%{buildroot}%{python3_sitelib}" \ + argparse-manpage \ + --module rpmautospec.cli \ + --function get_arg_parser \ + --format single-commands-section \ + --manual-title "User Commands" \ + --output "%{buildroot}%{_mandir}/man1/rpmautospec.1" + %check PYTHONPATH="%{buildroot}%{python3_sitelib}" \ @@ -145,6 +157,7 @@ PYTHONPATH="%{buildroot}%{python3_sitelib}" \ %files -n %{srcname} %{_bindir}/rpmautospec +%{_mandir}/man1/rpmautospec.1* %files -n koji-builder-plugin-rpmautospec %{_prefix}/lib/koji-builder-plugins/* diff --git a/rpmautospec/cli.py b/rpmautospec/cli.py index f9ae109..c6e44e7 100644 --- a/rpmautospec/cli.py +++ b/rpmautospec/cli.py @@ -43,7 +43,7 @@ class CustomArgumentParser(argparse.ArgumentParser): super().__init__(*args, **kwargs) -def get_cli_args(args: list[str]) -> argparse.Namespace: +def get_arg_parser() -> CustomArgumentParser: global subcmd_modules_by_name parser = CustomArgumentParser( @@ -106,7 +106,11 @@ def get_cli_args(args: list[str]) -> argparse.Namespace: subcmd_modules_by_name[subcmd_name] = subcmd_module - return parser.parse_args(args) + return parser + + +def get_cli_args(args: list[str]) -> argparse.Namespace: + return get_arg_parser().parse_args(args) @contextlib.contextmanager