From 4790a0dbd7b297e087713c6ff2e63bf7deee4d04 Mon Sep 17 00:00:00 2001 From: "Eric Wong (Contractor, The Linux Foundation)" Date: Fri, 30 Mar 2018 01:20:43 +0000 Subject: [PATCH] wwwstream: flesh out clone instructions for v2 Relying solely on git for v2 repos is probably not so useful, so add pointers to public-inbox-init/index commands. --- lib/PublicInbox/WwwStream.pm | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/lib/PublicInbox/WwwStream.pm b/lib/PublicInbox/WwwStream.pm index 76317544..ec75f16c 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; @@ -102,7 +105,19 @@ sub _html_end { $urls .= "\n" . join("\n", map { "\tgit clone --mirror $_" } @urls); } + 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"; -- 2.44.0