From 2ec58f6ed5106619248bd93b90945e7b60f1dfd9 Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Thu, 11 Aug 2022 15:43:15 -0400 Subject: [PATCH] Bug 31345 - Add ability to exit process_message_queue.pl early if any plugin before_send_messages hook fails Sometimes it would be better for process_message_queue.pl to stop if a plugin hook fails rather than continue processing. It would be nice if that was a command line option. Test Plan: 1) Install any plugin with a before_send_messages hook 2) Modify the plugin, add a 'die;' statement at the start of the before_send_messages method of the plugin. 3) Run process_message_queue.pl as usual 4) Note the exit code is 0 5) Run it again with the new -e setting 6) Note the exit code is 1 --- misc/cronjobs/process_message_queue.pl | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/misc/cronjobs/process_message_queue.pl b/misc/cronjobs/process_message_queue.pl index 9250748908..70ee529957 100755 --- a/misc/cronjobs/process_message_queue.pl +++ b/misc/cronjobs/process_message_queue.pl @@ -34,6 +34,7 @@ my $help = 0; my $verbose = 0; my @type; my @letter_code; +my $exit_on_plugin_failure = 0; my $command_line_options = join(" ",@ARGV); @@ -46,6 +47,7 @@ GetOptions( 'v|verbose' => \$verbose, 't|type:s' => \@type, 'c|code:s' => \@letter_code, + 'e|exit-on-plugin-failure' => \$exit_on_plugin_failure, ); my $usage = << 'ENDUSAGE'; @@ -64,6 +66,7 @@ This script has the following parameters : -m --method: authentication method required by SMTP server (See perldoc Sendmail.pm for supported authentication types.) -h --help: this message -v --verbose: provides verbose output to STDOUT + -e --exit-on-plugin-failure: if enabled, script will exit prematurely if any plugin before_send_messages hook fails ENDUSAGE die $usage if $help; @@ -102,6 +105,7 @@ if ( C4::Context->config("enable_plugins") ) { } catch { warn "$_"; + exit 1 if $exit_on_plugin_failure; }; } } -- 2.30.2