From 0311e891e621b33f8374c2599f5ca901febe0b23 Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Wed, 3 Jun 2026 01:09:53 +0200 Subject: [PATCH] list additional help topics in main borg help - Add an epilog to the main ArgumentParser in src/borg/archiver/__init__.py. - Import process_epilog and use it to format and list additional help topics: patterns, match-archives, placeholders, compression. - Add test_main_help_epilog to help_cmd_test.py. - Fixes #3432 --- src/borg/archiver/__init__.py | 15 ++++++++++++++- src/borg/testsuite/archiver/help_cmd_test.py | 9 +++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/borg/archiver/__init__.py b/src/borg/archiver/__init__.py index a2d409cc2..b90a7c7eb 100644 --- a/src/borg/archiver/__init__.py +++ b/src/borg/archiver/__init__.py @@ -244,14 +244,27 @@ class Archiver( self.define_common_options(add_argument) def build_parser(self): - from ._common import define_common_options + from ._common import define_common_options, process_epilog + additional_help = process_epilog( + """ + Description of additional help topics: + + Use ``borg help `` to get help on: + + patterns selection patterns for including/excluding paths + match-archives selection patterns for matching archives + placeholders placeholders in repository URLs, archive names, etc. + compression options and specifications for data compression + """ + ) parser = ArgumentParser( prog=self.prog, description="Borg - Deduplicated Backups", default_config_files=[os.path.join(get_config_dir(), "default.yaml")], default_env=True, env_prefix="BORG", + epilog=additional_help, ) parser.add_argument("--config", action="config") # paths and patterns must have an empty list as default everywhere diff --git a/src/borg/testsuite/archiver/help_cmd_test.py b/src/borg/testsuite/archiver/help_cmd_test.py index fc6fdebc7..acea7151f 100644 --- a/src/borg/testsuite/archiver/help_cmd_test.py +++ b/src/borg/testsuite/archiver/help_cmd_test.py @@ -53,3 +53,12 @@ def test_help_formatting(command, parser): def test_help_formatting_helptexts(topic): helptext = Archiver.helptext[topic] assert str(rst_to_terminal(helptext)) + + +def test_main_help_epilog(archiver): + help_output = cmd(archiver, "-h") + assert "Description of additional help topics:" in help_output + assert "patterns" in help_output + assert "match-archives" in help_output + assert "placeholders" in help_output + assert "compression" in help_output