This is already used by */$OID/s/, so just reuse existing code
and make git->local_nick use the assigned nick from the config
file, if there is one.
---
lib/PublicInbox/Git.pm | 3 ++-
lib/PublicInbox/WwwStream.pm | 17 +++++++----------
2 files changed, 9 insertions(+), 11 deletions(-)
diff --git a/lib/PublicInbox/Git.pm b/lib/PublicInbox/Git.pm
index 2ed3a29b..882a9a4a 100644
--- a/lib/PublicInbox/Git.pm
+++ b/lib/PublicInbox/Git.pm
@@ -452,7 +452,8 @@ sub DESTROY { cleanup(@_) }
sub local_nick ($) {
# don't show full FS path, basename should be OK:
- $_[0]->{git_dir} =~ m!/([^/]+?)(?:/*\.git/*)?\z! ? "$1.git" : undef;
+ $_[0]->{nick} // ($_[0]->{git_dir} =~ m!/([^/]+?)(?:/*\.git/*)?\z! ?
+ "$1.git" : undef);
}
sub host_prefix_url ($$) {
diff --git a/lib/PublicInbox/WwwStream.pm b/lib/PublicInbox/WwwStream.pm
index 92d243eb..ccac5e8b 100644
--- a/lib/PublicInbox/WwwStream.pm
+++ b/lib/PublicInbox/WwwStream.pm
@@ -98,16 +98,13 @@ sub coderepos ($) {
my @ret = ('<a id=code>' .
'Code repositories for project(s) associated with this '.
$ctx->{ibx}->thing_type . "\n");
- for my $cr_name (@$cr) {
- my $urls = $cfg->get_all("coderepo.$cr_name.cgiturl");
- if ($urls) {
- for (@$urls) {
- my $u = m!\A(?:[a-z\+]+:)?//! ? $_ : $pfx.$_;
- $u = ascii_html(prurl($ctx->{env}, $u));
- $ret[0] .= qq(\n\t<a\nhref="$u">$u</a>);
- }
- } else {
- $ret[0] .= qq[\n\t$cr_name.git (no URL configured)];
+ my $objs = $cfg->repo_objs($ctx->{ibx});
+ for my $git (@$objs) {
+ my @urls = $git->pub_urls;
+ for (@urls) {
+ my $u = m!\A(?:[a-z\+]+:)?//! ? $_ : $pfx.$_;
+ $u = ascii_html(prurl($ctx->{env}, $u));
+ $ret[0] .= qq(\n\t<a\nhref="$u">$u</a>);
}
}
@ret; # may be empty, this sub is called as an arg for join()