summaryrefslogtreecommitdiff
path: root/dgit-repos-server
diff options
context:
space:
mode:
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;
}