X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FWwwStream.pm;h=2527b8ed18848a577000c08abbe0051e028a6c8e;hb=525555d14118f92f86be54c683f797089c52a78d;hp=e06e3456ae19cbf163fcae457cce533f58bf33c0;hpb=6c853f5256f3a324c018a37a9e8a6b9fc8fdc063;p=public-inbox.git
diff --git a/lib/PublicInbox/WwwStream.pm b/lib/PublicInbox/WwwStream.pm
index e06e3456..2527b8ed 100644
--- a/lib/PublicInbox/WwwStream.pm
+++ b/lib/PublicInbox/WwwStream.pm
@@ -50,10 +50,11 @@ sub html_top ($) {
} elsif ($ctx->{qp}->{t}) {
$top = qq($top);
}
- my $links = "help / ".
- "color / ".
- "Atom feed";
- if ($ibx->search) {
+ my $links = qq(help / ).
+ qq(color / ).
+ qq(mirror / ).
+ qq(Atom feed);
+ if ($ibx->isrch) {
my $q_val = delete($ctx->{-q_value_html}) // '';
$q_val = qq(\nvalue="$q_val") if $q_val ne '';
# XXX gross, for SearchView.pm
@@ -75,6 +76,26 @@ sub html_top ($) {
'
'. $top . (delete($ctx->{-html_tip}) // '');
}
+sub coderepos ($) {
+ my ($ctx) = @_;
+ my $ibx = $ctx->{-inbox};
+ my @ret;
+ if (defined(my $cr = $ibx->{coderepo})) {
+ my $cfg = $ctx->{www}->{pi_config};
+ my $env = $ctx->{env};
+ for my $cr_name (@$cr) {
+ my $urls = $cfg->{"coderepo.$cr_name.cgiturl"};
+ if ($urls) {
+ $ret[0] //= <This inbox may be cloned and mirrored by anyone:
+EOF
+
my $ibx = $ctx->{-inbox};
my $desc = ascii_html($ibx->description);
@@ -94,12 +119,18 @@ sub _html_end {
my %seen = ($http => 1);
if (defined($max)) { # v2
for my $i (0..$max) {
- # old parts my be deleted:
+ # old epochs my be deleted:
-d "$ibx->{inboxdir}/git/$i.git" or next;
my $url = "$http/$i";
$seen{$url} = 1;
push @urls, "$url $dir/git/$i.git";
}
+ my $nr = scalar(@urls);
+ if ($nr > 1) {
+ $urls .= "\n\t# this inbox consists of $nr epochs:";
+ $urls[0] .= "\t# oldest";
+ $urls[-1] .= "\t# newest";
+ }
} else { # v1
push @urls, $http;
}
@@ -111,44 +142,38 @@ sub _html_end {
push @urls, $u =~ /\Ahttps?:/ ? qq($u) : $u;
}
- if (defined($max) || scalar(@urls) > 1) {
- $urls .= "\n" .
- join("\n", map { "\tgit clone --mirror $_" } @urls);
- } else {
- $urls .= " git clone --mirror $urls[0]";
- }
- if (defined $max) {
- my $addrs = $ibx->{address};
- $addrs = join(' ', @$addrs) if ref($addrs) eq 'ARRAY';
- $urls .= <{address};
+ $addrs = join(' ', @$addrs) if ref($addrs) eq 'ARRAY';
+ my $v = defined $max ? '-V2' : '-V1';
+ $urls .= <{name} $dir/ $http \\
+ public-inbox-init $v $ibx->{name} $dir/ $http \\
$addrs
public-inbox-index $dir
EOF
- } else { # v1
- $urls .= "\n";
- }
-
my $cfg_link = ($ctx->{-upfx} // '').'_/text/config/raw';
- $urls .= qq(\nExample config snippet for mirrors\n);
+ $urls .= <config snippet for mirrors.
+EOF
my @nntp = map { qq($_) } @{$ibx->nntp_url};
if (@nntp) {
- $urls .= "\n";
$urls .= @nntp == 1 ? 'Newsgroup' : 'Newsgroups are';
$urls .= ' available over NNTP:';
$urls .= "\n\t" . join("\n\t", @nntp) . "\n";
}
if ($urls =~ m!\b[^:]+://\w+\.onion/!) {
- $urls .= "\n note: .onion URLs require Tor: ";
+ $urls .= " note: .onion URLs require Tor: ";
$urls .= qq[$TOR_URL];
}
'
'.join("\n\n",
$desc,
$urls,
+ coderepos($ctx),
code_footer($ctx->{env})
).'