From 1d6ce76f63bcbe787e7184a1fa5aa568a2a18873 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 16 Jun 2018 13:41:00 +0100 Subject: exit status: Introdude Debian::Dgit::ExitStatus No callers yet. Also, no version for dgit-infrastructure. The one perl script in dgit-infrastructure that cares a lot about its exit status (dgit-repos-policy-debian) already has an END { } and uses _exit, which is a bit like our approach here, but simpler. Signed-off-by: Ian Jackson --- Debian/Dgit/ExitStatus.pm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 Debian/Dgit/ExitStatus.pm (limited to 'Debian/Dgit') diff --git a/Debian/Dgit/ExitStatus.pm b/Debian/Dgit/ExitStatus.pm new file mode 100644 index 0000000..b69d42d --- /dev/null +++ b/Debian/Dgit/ExitStatus.pm @@ -0,0 +1,26 @@ +# -*- perl -*- + +package Debian::Dgit::ExitStatus; + +# To use this, at the top (before use strict, even): +# +# END { $? = $Debian::Dgit::ExitStatus::desired // -1; }; +# use Debian::Dgit::ExitStatus; +# +# and then replace every call to `exit' with `finish'. +# Add a `finish 0' to the end of the program. + +BEGIN { + use Exporter; + @ISA = qw(Exporter); + @EXPORT = qw(finish $desired); +} + +our $desired; + +sub finish ($) { + $desired = $_[0] // 0; + exit $desired; +} + +1; -- cgit v1.2.3