Gautam Aggarwal 2 months ago
parent
commit
996b037946
2 changed files with 25 additions and 0 deletions
  1. 19 0
      borgmatic/commands/borgmatic.py
  2. 6 0
      borgmatic/config/schema.yaml

+ 19 - 0
borgmatic/commands/borgmatic.py

@@ -943,6 +943,22 @@ def exit_with_help_link():  # pragma: no cover
     sys.exit(1)
 
 
+def check_and_show_help_on_no_args():
+    """
+    Check if the 'borgmatic' command is run without any arguments. If the configuration option
+    'show_help_on_no_args' is set to True, show the help message. Otherwise, trigger the
+    default backup behavior.
+    """
+    if len(sys.argv) == 1:  # No arguments provided
+        show_help_on_no_args = any(
+            config.get('show_help_on_no_args', False)
+            for config in load_configurations(tuple(collect.collect_config_filenames(None)))[0].values()
+        )
+        if show_help_on_no_args:
+            print(parse_arguments('--help'))
+            sys.exit(0)
+
+
 def main(extra_summary_logs=[]):  # pragma: no cover
     configure_signals()
     configure_delayed_logging()
@@ -971,6 +987,9 @@ def main(extra_summary_logs=[]):  # pragma: no cover
         print(borgmatic.commands.completion.fish.fish_completion())
         sys.exit(0)
 
+    # Use the helper function to check and show help on no arguments
+    check_and_show_help_on_no_args()
+
     validate = bool('validate' in arguments)
     config_filenames = tuple(collect.collect_config_filenames(global_arguments.config_paths))
     configs, config_paths, parse_logs = load_configurations(

+ 6 - 0
borgmatic/config/schema.yaml

@@ -2665,3 +2665,9 @@ properties:
                 example: /usr/local/bin/keepassxc-cli
         description: |
             Configuration for integration with the KeePassXC password manager.
+    show_help_on_no_args:
+        type: boolean
+        description: |
+            If true, running borgmatic without any arguments will display the
+            help message instead of triggering a backup. Defaults to false.
+        example: true