| Index: third_party/dpkg-dev/scripts/Dpkg/Exit.pm
|
| diff --git a/third_party/dpkg-dev/scripts/Dpkg/Exit.pm b/third_party/dpkg-dev/scripts/Dpkg/Exit.pm
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b967f42f52c1bcc092d11b48006f1402c85f1d34
|
| --- /dev/null
|
| +++ b/third_party/dpkg-dev/scripts/Dpkg/Exit.pm
|
| @@ -0,0 +1,98 @@
|
| +# Copyright © 2002 Adam Heath <doogie@debian.org>
|
| +# Copyright © 2012-2013 Guillem Jover <guillem@debian.org>
|
| +#
|
| +# This program is free software; you can redistribute it and/or modify
|
| +# it under the terms of the GNU General Public License as published by
|
| +# the Free Software Foundation; either version 2 of the License, or
|
| +# (at your option) any later version.
|
| +#
|
| +# This program is distributed in the hope that it will be useful,
|
| +# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
| +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
| +# GNU General Public License for more details.
|
| +#
|
| +# You should have received a copy of the GNU General Public License
|
| +# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
| +
|
| +package Dpkg::Exit;
|
| +
|
| +use strict;
|
| +use warnings;
|
| +
|
| +our $VERSION = '1.01';
|
| +
|
| +use Exporter qw(import);
|
| +
|
| +our @EXPORT_OK = qw(push_exit_handler pop_exit_handler run_exit_handlers);
|
| +
|
| +# XXX: Backwards compatibility, stop exporting on VERSION 2.00.
|
| +## no critic (Variables::ProhibitPackageVars)
|
| +our @handlers = ();
|
| +## use critic
|
| +
|
| +=encoding utf8
|
| +
|
| +=head1 NAME
|
| +
|
| +Dpkg::Exit - program exit handlers
|
| +
|
| +=head1 DESCRIPTION
|
| +
|
| +The Dpkg::Exit module provides support functions to run handlers on exit.
|
| +
|
| +=head1 FUNCTIONS
|
| +
|
| +=over 4
|
| +
|
| +=item push_exit_handler($func)
|
| +
|
| +Register a code reference into the exit function handlers stack.
|
| +
|
| +=cut
|
| +
|
| +sub push_exit_handler {
|
| + my ($func) = shift;
|
| + push @handlers, $func;
|
| +}
|
| +
|
| +=item pop_exit_handler()
|
| +
|
| +Pop the last registered exit handler from the handlers stack.
|
| +
|
| +=cut
|
| +
|
| +sub pop_exit_handler {
|
| + pop @handlers;
|
| +}
|
| +
|
| +=item run_exit_handlers()
|
| +
|
| +Run the registered exit handlers.
|
| +
|
| +=cut
|
| +
|
| +sub run_exit_handlers {
|
| + &$_() foreach (reverse @handlers);
|
| +}
|
| +
|
| +sub exit_handler {
|
| + run_exit_handlers();
|
| + exit(127);
|
| +}
|
| +
|
| +$SIG{INT} = \&exit_handler;
|
| +$SIG{HUP} = \&exit_handler;
|
| +$SIG{QUIT} = \&exit_handler;
|
| +
|
| +=back
|
| +
|
| +=head1 CHANGES
|
| +
|
| +=head2 Version 1.01
|
| +
|
| +New functions: push_exit_handler(), pop_exit_handler(), run_exit_handlers()
|
| +Deprecated variable: @handlers
|
| +
|
| +=cut
|
| +
|
| +1;
|
|
|