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 $!;
for (;;) {
print PT or die $!;
- $!=0; $_=<T>; defined or die $!;
+ $!=0; $_=<T>; defined or die "missing signature? $!";
last if m/^-----BEGIN PGP/;
}
for (;;) {
reject "unknown suite";
}
+sub tagh1 ($) {
+ my ($tag) = @_;
+ my $vals = $tagh{$tag};
+ reject "missing tag $tag in signed tag object" unless $vals;
+ reject "multiple tags $tag in signed tag object" unless @$vals == 1;
+ return $vals->[0];
+}
+
sub checks () {
debug "checks";
checksuite();
sub stunthook () {
debug "stunthook";
- print Dumper(\$ENV{GIT_DIR});
chdir $workrepo or die "chdir $workrepo: $!";
mkdir "dgit-tmp" or $!==EEXIST or die $!;
readupdates();
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;
}