diff options
author | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2014-01-29 19:06:30 +0000 |
---|---|---|
committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2014-03-05 18:29:06 +0000 |
commit | 491559fd4c0a95ec591fe0e3581fcabc018d1966 (patch) | |
tree | a20b04aebeb1559064712e84bd8ab9b259c97244 | |
parent | 325bc216726ed42c137901b4903f99f298a3edbb (diff) |
dgit-repos-server: pre-receive hook sends errors to recorderror
-rwxr-xr-x | dgit-repos-server | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/dgit-repos-server b/dgit-repos-server index 6acd689..57cb5be 100755 --- a/dgit-repos-server +++ b/dgit-repos-server @@ -153,6 +153,7 @@ sub recorderror ($) { my ($why) = @_; my $w = $ENV{'DGIT_DRS_WORK'}; # we are in stunthook if (defined $w) { + chomp $why; open ERR, ">", "$w/drs-error" or die $!; print ERR $why, "\n" or die $!; close ERR or die $!; @@ -544,7 +545,13 @@ sub parseargsdispatch () { defined($destrepo = $ENV{'DGIT_DRS_DEST'}) or die; defined($keyrings = $ENV{'DGIT_DRS_KEYRINGS'}) or die $!; open STDOUT, ">&STDERR" or die $!; - stunthook(); + eval { + stunthook(); + }; + if ($@) { + recorderror "$@" or die; + die $@; + } exit 0; } |