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

Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 83f9535fab)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This commit is contained in:
Kyle M Hall 2022-08-11 15:43:15 -04:00 committed by Fridolin Somers
parent f63dbed44a
commit ff2cce52c5
1 changed files with 4 additions and 0 deletions

View File

@ -35,6 +35,7 @@ my $verbose = 0;
my $where;
my @type;
my @letter_code;
my $exit_on_plugin_failure = 0;
my $command_line_options = join(" ",@ARGV);
@ -48,6 +49,7 @@ GetOptions(
't|type:s' => \@type,
'c|code:s' => \@letter_code,
'w|where:s' => \$where,
'e|exit-on-plugin-failure' => \$exit_on_plugin_failure,
);
my $usage = << 'ENDUSAGE';
@ -67,6 +69,7 @@ This script has the following parameters :
-h --help: this message
-v --verbose: provides verbose output to STDOUT
-w --where: filter messages to send with additional conditions in the where clause
-e --exit-on-plugin-failure: if enabled, script will exit prematurely if any plugin before_send_messages hook fails
ENDUSAGE
die $usage if $help;
@ -106,6 +109,7 @@ if ( C4::Context->config("enable_plugins") ) {
}
catch {
warn "$_";
exit 1 if $exit_on_plugin_failure;
};
}
}