From ae4dea507387c90a796e2a752a717f8bc5ed1dae Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 17 May 2015 14:13:25 +0100 Subject: Infra: Exit statuses: work around bizarre behaviour of perl die wrt $?, and de-reserve policy hook status flag 0x80 --- infra/dgit-repos-policy-debian | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'infra/dgit-repos-policy-debian') diff --git a/infra/dgit-repos-policy-debian b/infra/dgit-repos-policy-debian index 6e0f0dc..06ad002 100755 --- a/infra/dgit-repos-policy-debian +++ b/infra/dgit-repos-policy-debian @@ -17,6 +17,8 @@ use Debian::Dgit::Policy::Debian; initdebug('%'); enabledebuglevel $ENV{'DGIT_DRS_DEBUG'}; +END { $? = 127; } # deliberate exit uses _exit + our $distro = shift @ARGV // die "need DISTRO"; our $repos = shift @ARGV // die "need DGIT-REPOS-DIR"; our $dgitlive = shift @ARGV // die "need DGIT-LIVE-DIR"; @@ -434,7 +436,7 @@ if (!$fn) { } my $sleepy=0; -our $rcode = 127; +my $rcode; for (;;) { poldb_setup(poldb_path($repos)); @@ -453,5 +455,6 @@ for (;;) { $poldbh->rollback; } -print STDERR $stderr; -exit $rcode; +print STDERR $stderr or die $!; +flush STDERR or die $!; +_exit $rcode; -- cgit v1.2.3