diff options
-rw-r--r-- | Debian/Dgit/ExitStatus.pm | 26 | ||||
-rw-r--r-- | Makefile | 2 |
2 files changed, 27 insertions, 1 deletions
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; @@ -46,7 +46,7 @@ MAN7PAGES=dgit.7 \ dgit-sponsorship.7 TXTDOCS=README.dsc-import -PERLMODULES=Debian/Dgit.pm +PERLMODULES=Debian/Dgit.pm Debian/Dgit/ExitStatus.pm ABSURDITIES=git INFRA_PROGRAMS=dgit-repos-server dgit-ssh-dispatch \ |