From 50eb53bd77c2186d661258492241b26a5af5f66b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20Kr=C3=BCger?= Date: Mon, 14 Aug 2023 12:54:02 +0200 Subject: [PATCH] Termination with non-zero exit value as error handling default. Fixes #3172. --- RELEASE.md | 3 +++ pelican/__init__.py | 8 ++++---- pelican/log.py | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) create mode 100644 RELEASE.md diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 0000000000..f8e299c2fb --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,3 @@ +Release type: minor + +Change default of `--fatal` command line switch to terminate on error. diff --git a/pelican/__init__.py b/pelican/__init__.py index bd86798818..82f5887da9 100644 --- a/pelican/__init__.py +++ b/pelican/__init__.py @@ -358,10 +358,10 @@ def parse_arguments(argv=None): dest='selected_paths', default=None, help='Comma separated list of selected paths to write') - parser.add_argument('--fatal', metavar='errors|warnings', - choices=('errors', 'warnings'), default='', + parser.add_argument('--fatal', metavar='errors|warnings|ignore', + choices=('errors', 'warnings', 'ignore'), default='errors', help=('Exit the program with non-zero status if any ' - 'errors/warnings encountered.')) + 'errors/warnings encountered, or ignore any errors.')) parser.add_argument('--logs-dedup-min-level', default='WARNING', choices=('DEBUG', 'INFO', 'WARNING', 'ERROR'), @@ -525,7 +525,7 @@ def listen(server, port, output, excqueue=None): def main(argv=None): args = parse_arguments(argv) logs_dedup_min_level = getattr(logging, args.logs_dedup_min_level) - init_logging(level=args.verbosity, fatal=args.fatal, + init_logging(level=args.verbosity, fatal=(args.fatal if args.fatal != 'ignore' else ''), name=__name__, logs_dedup_min_level=logs_dedup_min_level) logger.debug('Pelican version: %s', __version__) diff --git a/pelican/log.py b/pelican/log.py index be176ea89d..1aa019b612 100644 --- a/pelican/log.py +++ b/pelican/log.py @@ -103,7 +103,7 @@ def error(self, *args, **kwargs): logging.getLogger().__class__ = FatalLogger -def init(level=None, fatal='', handler=RichHandler(console=console), name=None, +def init(level=None, fatal='errors', handler=RichHandler(console=console), name=None, logs_dedup_min_level=None): FatalLogger.warnings_fatal = fatal.startswith('warning') FatalLogger.errors_fatal = bool(fatal)