summaryrefslogtreecommitdiff
path: root/dgit-repos-server
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2014-01-29 19:03:13 +0000
committerIan Jackson <ijackson@chiark.greenend.org.uk>2014-03-05 18:29:06 +0000
commit325bc216726ed42c137901b4903f99f298a3edbb (patch)
tree099916e5179b6d545f428c0ecc81f5cb70e869ea /dgit-repos-server
parentae269e862c21b2806e1039fb69c4ef9f67bb13b6 (diff)
dgit-repos-server: do drs-error and recorderror, not just for reject
Diffstat (limited to 'dgit-repos-server')
-rwxr-xr-xdgit-repos-server22
1 files changed, 13 insertions, 9 deletions
diff --git a/dgit-repos-server b/dgit-repos-server
index 11e4569..6acd689 100755
--- a/dgit-repos-server
+++ b/dgit-repos-server
@@ -149,19 +149,21 @@ sub mkrepotmp () {
die $!;
}
-sub recordreject ($) {
+sub recorderror ($) {
my ($why) = @_;
my $w = $ENV{'DGIT_DRS_WORK'}; # we are in stunthook
if (defined $w) {
- open REJ, ">", "$w/drs-reject" or die $!;
- print REJ $why, "\n" or die $!;
- close REJ or die $!;
+ open ERR, ">", "$w/drs-error" or die $!;
+ print ERR $why, "\n" or die $!;
+ close ERR or die $!;
+ return 1;
}
+ return 0;
}
sub reject ($) {
my ($why) = @_;
- recordreject $why;
+ recorderror "reject: $why";
die "dgit-repos-server: reject: $why\n";
}
@@ -218,10 +220,12 @@ END
sub maybeinstallprospective () {
return if $destrepo eq $realdestrepo;
- if (open REJ, "<", "$workrepo/drs-reject") {
- $!=0; my $why = <REJ>;
- chomp $why or die $!;
- reject $why;
+ if (open REJ, "<", "$workrepo/drs-error") {
+ local $/ = undef;
+ my $msg = <REJ>;
+ REJ->error and die $!;
+ print STDERR $msg;
+ exit 1;
} else {
$!==&ENOENT or die $!;
}