X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FWwwStream.pm;h=d39f551176dfe2ecf266ebe8c221512903691cca;hb=0c57f0cfe8ab04dedad26d21e7e1589858b351dc;hp=76317544b9c2ee74b496770d63d2ba71d36ff970;hpb=7b5ea579e6a9490a4a38958acac8e078d805eec7;p=public-inbox.git diff --git a/lib/PublicInbox/WwwStream.pm b/lib/PublicInbox/WwwStream.pm index 76317544..d39f5511 100644 --- a/lib/PublicInbox/WwwStream.pm +++ b/lib/PublicInbox/WwwStream.pm @@ -74,14 +74,17 @@ sub _html_end { my (%seen, @urls); my $http = $obj->base_url($ctx->{env}); - chop $http; # no trailing slash + chop $http; # no trailing slash for clone my $part = $obj->max_git_part; + my $dir = (split(m!/!, $http))[-1]; if (defined($part)) { # v2 - # most recent partition first: - for (; $part >= 0; $part--) { - my $url = "$http/$part"; + $seen{$http} = 1; + for my $i (0..$part) { + # old parts my be deleted: + -d "$obj->{mainrepo}/git/$i.git" or next; + my $url = "$http/$i"; $seen{$url} = 1; - push @urls, $url; + push @urls, "$url $dir/git/$i.git"; } } else { # v1 $seen{$http} = 1; @@ -96,13 +99,25 @@ sub _html_end { push @urls, $u =~ /\Ahttps?:/ ? qq($u) : $u; } - if (scalar(@urls) == 1) { - $urls .= " git clone --mirror $urls[0]"; - } else { + if (defined($part) || scalar(@urls) > 1) { $urls .= "\n" . join("\n", map { "\tgit clone --mirror $_" } @urls); + } else { + $urls .= " git clone --mirror $urls[0]"; } + if (defined $part) { + my $addrs = $obj->{address}; + $addrs = join(' ', @$addrs) if ref($addrs) eq 'ARRAY'; + $urls .= <{name} $dir/ $http \\ + $addrs + public-inbox-index $dir +EOF + } my @nntp = map { qq($_) } @{$obj->nntp_url}; if (@nntp) { $urls .= "\n\n";