chiark
/
gitweb
/
~ianmdlvl
/
dgit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
dgit: Introduce archive_query_prepend_mirror
[dgit.git]
/
dgit
diff --git
a/dgit
b/dgit
index 8264f3e576a625e37cecb9c30bfe70f3596fd9a4..11ca5f53bcbe3f02b2dfda4d2b5edf6a55aaca8e 100755
(executable)
--- a/
dgit
+++ b/
dgit
@@
-923,10
+923,10
@@
sub parsecontrolfh ($$;$) {
}
sub parsecontrol {
}
sub parsecontrol {
- my ($file, $desc) = @_;
+ my ($file, $desc
, $allowsigned
) = @_;
my $fh = new IO::Handle;
open $fh, '<', $file or die "$file: $!";
my $fh = new IO::Handle;
open $fh, '<', $file or die "$file: $!";
- my $c = parsecontrolfh($fh,$desc);
+ my $c = parsecontrolfh($fh,$desc
,$allowsigned
);
$fh->error and die $!;
close $fh;
return $c;
$fh->error and die $!;
close $fh;
return $c;
@@
-986,6
+986,11
@@
sub archive_query ($;@) {
{ no strict qw(refs); &{"${method}_${proto}"}($proto,$data,@_); }
}
{ no strict qw(refs); &{"${method}_${proto}"}($proto,$data,@_); }
}
+sub archive_query_prepend_mirror {
+ my $m = access_cfg('mirror');
+ return map { [ $_->[0], $m.$_->[1], @$_[2..$#$_] ] } @_;
+}
+
sub pool_dsc_subpath ($$) {
my ($vsn,$component) = @_; # $package is implict arg
my $prefix = substr($package, 0, $package =~ m/^l/ ? 4 : 1);
sub pool_dsc_subpath ($$) {
my ($vsn,$component) = @_; # $package is implict arg
my $prefix = substr($package, 0, $package =~ m/^l/ ? 4 : 1);
@@
-1092,7
+1097,7
@@
sub archive_query_ftpmasterapi {
if length $@;
}
@rows = sort { -version_compare($a->[0],$b->[0]) } @rows;
if length $@;
}
@rows = sort { -version_compare($a->[0],$b->[0]) } @rows;
- return @rows;
+ return
archive_query_prepend_mirror
@rows;
}
sub file_in_archive_ftpmasterapi {
}
sub file_in_archive_ftpmasterapi {
@@
-1134,7
+1139,8
@@
sub file_in_archive_dummycatapi ($$$) {
#---------- `madison' archive query method ----------
sub archive_query_madison {
#---------- `madison' archive query method ----------
sub archive_query_madison {
- return map { [ @$_[0..1] ] } madison_get_parse(@_);
+ return archive_query_prepend_mirror
+ map { [ @$_[0..1] ] } madison_get_parse(@_);
}
sub madison_get_parse {
}
sub madison_get_parse {
@@
-1240,7
+1246,7
@@
END
my ($vsn,$component,$filename,$sha256sum) = @$_;
[ $vsn, "/pool/$component/$filename",$digester,$sha256sum ];
} @rows;
my ($vsn,$component,$filename,$sha256sum) = @$_;
[ $vsn, "/pool/$component/$filename",$digester,$sha256sum ];
} @rows;
- return @rows;
+ return
archive_query_prepend_mirror
@rows;
}
sub canonicalise_suite_sshpsql ($$) {
}
sub canonicalise_suite_sshpsql ($$) {
@@
-1296,7
+1302,8
@@
sub archive_query_dummycat ($$) {
}
C->error and die "$dpath: $!";
close C;
}
C->error and die "$dpath: $!";
close C;
- return sort { -version_compare($a->[0],$b->[0]); } @rows;
+ return archive_query_prepend_mirror
+ sort { -version_compare($a->[0],$b->[0]); } @rows;
}
sub file_in_archive_dummycat () { return undef; }
}
sub file_in_archive_dummycat () { return undef; }
@@
-1358,8
+1365,8
@@
sub get_archive_dsc () {
canonicalise_suite();
my @vsns = archive_query('archive_query');
foreach my $vinfo (@vsns) {
canonicalise_suite();
my @vsns = archive_query('archive_query');
foreach my $vinfo (@vsns) {
- my ($vsn,$
subpath
,$digester,$digest) = @$vinfo;
- $dscurl =
access_cfg('mirror').$subpath
;
+ my ($vsn,$
vsn_dscurl
,$digester,$digest) = @$vinfo;
+ $dscurl =
$vsn_dscurl
;
$dscdata = url_get($dscurl);
if (!$dscdata) {
$skew_warning_vsn = $vsn if !defined $skew_warning_vsn;
$dscdata = url_get($dscurl);
if (!$dscdata) {
$skew_warning_vsn = $vsn if !defined $skew_warning_vsn;