-sub _html_end {
- my ($self) = @_;
- my $urls = 'Archives are clonable:';
- my $ctx = $self->{ctx};
- my $obj = $ctx->{-inbox};
- my $desc = ascii_html($obj->description);
-
- my (%seen, @urls);
- my $http = $obj->base_url($ctx->{env});
- chop $http; # no trailing slash for clone
- my $part = $obj->max_git_part;
- my $dir = (split(m!/!, $http))[-1];
- if (defined($part)) { # v2
- $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 $dir/git/$i.git";
- }
- } else { # v1
- $seen{$http} = 1;
- push @urls, $http;
- }
-
- # FIXME: partitioning in can be different in other repositories,
- # use the "cloneurl" file as-is for now:
- foreach my $u (@{$obj->cloneurl}) {
- next if $seen{$u};
- $seen{$u} = 1;
- push @urls, $u =~ /\Ahttps?:/ ? qq(<a\nhref="$u">$u</a>) : $u;
- }
-
- if (scalar(@urls) == 1) {
- $urls .= " git clone --mirror $urls[0]";
- } else {
- $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 .= <<EOF
-
-
- # If you have public-inbox 1.1+ installed, you may
- # initialize and index your mirror using the following commands:
- public-inbox-init -V2 $obj->{name} $dir/ $http \\
- $addrs
- public-inbox-index $dir
+sub coderepos ($) {
+ my ($ctx) = @_;
+ my $cr = $ctx->{ibx}->{coderepo} // return ();
+ my $cfg = $ctx->{www}->{pi_cfg};
+ my $upfx = ($ctx->{-upfx} // ''). '../';
+ my @ret;
+ for my $cr_name (@$cr) {
+ $ret[0] //= <<EOF;
+<a id=code>code repositories for project(s) associated with this inbox: