foreach my $fi (@dfi) {
my $f = $fi->{Filename};
die "$f ?" if $f =~ m#/|^\.|\.dsc$|\.tmp$#;
+ my $upper_f = "../../../../$f";
printdebug "considering linking $f: ";
- link_ltarget "../../../../$f", $f
+ link_ltarget $upper_f, $f
or ((printdebug "($!) "), 0)
or $!==&ENOENT
or die "$f $!";
complete_file_from_dsc('.', $fi)
or next;
- if (is_orig_file_in_dsc($f, \@dfi)) {
- link $f, "../../../../$f"
- or $!==&EEXIST
- or die "$f $!";
- }
+ link $f, $upper_f
+ or $!==&EEXIST
+ or die "$f $!";
}
# We unpack and record the orig tarballs first, so that we only
my $tf = "$dstdir/$f";
my $downloaded = 0;
+ my $checkhash = sub {
+ open F, "<", "$tf" or die "$tf: $!";
+ $fi->{Digester}->reset();
+ $fi->{Digester}->addfile(*F);
+ F->error and die $!;
+ my $got = $fi->{Digester}->hexdigest();
+ $got eq $fi->{Hash} or
+ fail "file $f has hash $got but .dsc".
+ " demands hash $fi->{Hash} ".
+ ($downloaded ? "(got wrong file from archive!)"
+ : "(perhaps you should delete this file?)");
+ };
+
if (stat_exists $tf) {
progress "using existing $f";
} else {
$downloaded = 1;
}
- open F, "<", "$tf" or die "$tf: $!";
- $fi->{Digester}->reset();
- $fi->{Digester}->addfile(*F);
- F->error and die $!;
- my $got = $fi->{Digester}->hexdigest();
- $got eq $fi->{Hash} or
- fail "file $f has hash $got but .dsc".
- " demands hash $fi->{Hash} ".
- ($downloaded ? "(got wrong file from archive!)"
- : "(perhaps you should delete this file?)");
+ $checkhash->();
return 1;
}
END
if $oldhash && !$force;
+ notpushing();
+
my @dfi = dsc_files_info();
foreach my $fi (@dfi) {
my $f = $fi->{Filename};