defined(my $v = $ibx->{$k}) or next;
$$txt .= "\t$k = $v\n";
}
- $$txt .= "\tnntpmirror = $_\n" for (@{$ibx->nntp_url});
+ $$txt .= "\tnntpmirror = $_\n" for (@{$ibx->nntp_url($ctx)});
+ $$txt .= "\timapmirror = $_\n" for (@{$ibx->imap_url($ctx)});
_coderepo_config($ctx, $txt);
1;
}
my $cfg = $ctx->{www}->{pi_cfg};
my @ret;
for my $cr_name (@$cr) {
- $ret[0] //= <<EOF;
-code repositories for project(s) associated with this inbox:
+ $ret[0] //= do {
+ my $thing = $ctx->{ibx}->can('cloneurl') ?
+ 'public inbox' : 'external index';
+ <<EOF;
+Code repositories for project(s) associated with this $thing
EOF
+ };
my $urls = $cfg->get_all("coderepo.$cr_name.cgiturl");
if ($urls) {
for (@$urls) {
$top_url =~ s!/[^/]+\z!/!;
$$txt .= "public-inbox mirroring instructions\n\n";
if ($ibx->can('cloneurl')) { # PublicInbox::Inbox
- $$txt .= "This inbox may be cloned and mirrored by anyone:\n";
+ $$txt .=
+ "This public inbox may be cloned and mirrored by anyone:\n";
my @urls;
my $max = $ibx->max_git_epoch;
# TODO: some of these URLs may be too long and we may need to
}
} else { # PublicInbox::ExtSearch
$$txt .= <<EOM;
-This is an extindex which is an amalgamation of several public-inboxes.
-Each public-inbox needs to be mirrored individually.
+This is an external index which is an amalgamation of several public inboxes.
+Each public inbox needs to be mirrored individually.
EOM
my $v = $ctx->{www}->{pi_cfg}->{lc('publicInbox.wwwListing')};
if (($v // '') =~ /\A(?:all|match=domain)\z/) {
Example config snippet for mirrors: $cfg_link
EOF
+ if ($ibx->can('imap_url')) {
+ my $imap = $ibx->imap_url($ctx);
+ if (@$imap) {
+ $$txt .= "\n";
+ $$txt .= 'IMAP subfolder(s) available under:';
+ $$txt .= "\n\t" . join("\n\t", @$imap) . "\n";
+ $$txt .= <<EOM
+ # each subfolder (starting with `0') holds 50K messages at most
+EOM
+ }
+ }
if ($ibx->can('nntp_url')) {
- my $nntp = $ibx->nntp_url;
+ my $nntp = $ibx->nntp_url($ctx);
if (scalar @$nntp) {
$$txt .= "\n";
$$txt .= @$nntp == 1 ? 'Newsgroup' : 'Newsgroups are';