summaryrefslogtreecommitdiff
path: root/dgit-repos-server
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2014-01-29 19:06:30 +0000
committerIan Jackson <ijackson@chiark.greenend.org.uk>2014-03-05 18:29:06 +0000
commit491559fd4c0a95ec591fe0e3581fcabc018d1966 (patch)
treea20b04aebeb1559064712e84bd8ab9b259c97244 /dgit-repos-server
parent325bc216726ed42c137901b4903f99f298a3edbb (diff)
dgit-repos-server: pre-receive hook sends errors to recorderror
Diffstat (limited to 'dgit-repos-server')
-rwxr-xr-xdgit-repos-server9
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;
}