chiark / gitweb /
dgit-repos-server: pre-receive hook sends errors to recorderror
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 29 Jan 2014 19:06:30 +0000 (19:06 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 5 Mar 2014 18:29:06 +0000 (18:29 +0000)
dgit-repos-server

index 6acd689..57cb5be 100755 (executable)
@@ -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;
     }