2
0
Эх сурвалжийг харах

Handle and format validation errors raised during argument parsing (#136).

Dan Helfman 6 жил өмнө
parent
commit
031b9d6faf
2 өөрчлөгдсөн 18 нэмэгдсэн , 3 устгасан
  1. 1 0
      NEWS
  2. 17 3
      borgmatic/commands/borgmatic.py

+ 1 - 0
NEWS

@@ -1,4 +1,5 @@
 1.2.15.dev0
+ * #136: Handle and format validation errors raised during argument parsing.
 
 1.2.14
  * #103: When generating sample configuration with generate-borgmatic-config, document the defaults

+ 17 - 3
borgmatic/commands/borgmatic.py

@@ -350,9 +350,24 @@ def collect_configuration_run_summary_logs(config_filenames, args):
         )
 
 
+def exit_with_help_link():  # pragma: no cover
+    '''
+    Display a link to get help and exit with an error code.
+    '''
+    logger.critical('\nNeed some help? https://torsion.org/borgmatic/#issues')
+    sys.exit(1)
+
+
 def main():  # pragma: no cover
     configure_signals()
-    args = parse_arguments(*sys.argv[1:])
+
+    try:
+        args = parse_arguments(*sys.argv[1:])
+    except ValueError as error:
+        logging.basicConfig(level=logging.CRITICAL, format='%(message)s')
+        logger.critical(error)
+        exit_with_help_link()
+
     logging.basicConfig(level=verbosity_to_log_level(args.verbosity), format='%(message)s')
 
     if args.version:
@@ -369,5 +384,4 @@ def main():  # pragma: no cover
     [logger.handle(log) for log in summary_logs if log.levelno >= logger.getEffectiveLevel()]
 
     if any(log.levelno == logging.CRITICAL for log in summary_logs):
-        logger.critical('\nNeed some help? https://torsion.org/borgmatic/#issues')
-        sys.exit(1)
+        exit_with_help_link()