Loading cgitrc (and associated projects.list) can get users
out of defining as many individual coderepos.

xt/solver.t needs a use of `$_' replaced since that
gets clobbered while parsing cgitrc.
---
 lib/PublicInbox/Config.pm      | 3 ++-
 lib/PublicInbox/WwwCoderepo.pm | 3 +--
 xt/solver.t                    | 4 ++--
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/lib/PublicInbox/Config.pm b/lib/PublicInbox/Config.pm
index 5620bd0e..174c75ef 100644
--- a/lib/PublicInbox/Config.pm
+++ b/lib/PublicInbox/Config.pm
@@ -276,7 +276,7 @@ sub scan_projects_coderepo ($$$) {
 
 sub parse_cgitrc {
        my ($self, $cgitrc, $nesting) = @_;
-       $cgitrc //= $self->{'publicinbox.cgitrc'};
+       $cgitrc //= $self->{'publicinbox.cgitrc'} // return;
        if ($nesting == 0) {
                # defaults:
                my %s = map { $_ => 1 } qw(/cgit.css /cgit.png
@@ -388,6 +388,7 @@ sub repo_objs {
        my ($self, $ibxish) = @_;
        my $ibx_code_repos = $ibxish->{coderepo} // return;
        $ibxish->{-repo_objs} // do {
+               parse_cgitrc($self, undef, 0);
                my $code_repos = $self->{-code_repos};
                my @repo_objs;
                for my $nick (@$ibx_code_repos) {
diff --git a/lib/PublicInbox/WwwCoderepo.pm b/lib/PublicInbox/WwwCoderepo.pm
index 99df39ef..1a8754c4 100644
--- a/lib/PublicInbox/WwwCoderepo.pm
+++ b/lib/PublicInbox/WwwCoderepo.pm
@@ -27,8 +27,7 @@ sub prepare_coderepos {
        my $pi_cfg = $self->{pi_cfg};
 
        # TODO: support gitweb and other repository viewers?
-       defined($pi_cfg->{'publicinbox.cgitrc'}) and
-               $pi_cfg->parse_cgitrc(undef, 0);
+       $pi_cfg->parse_cgitrc(undef, 0);
 
        my $code_repos = $pi_cfg->{-code_repos};
        for my $k (grep(/\Acoderepo\.(?:.+)\.dir\z/, keys %$pi_cfg)) {
diff --git a/xt/solver.t b/xt/solver.t
index 40a5f81f..1b0af3d8 100644
--- a/xt/solver.t
+++ b/xt/solver.t
@@ -36,8 +36,8 @@ my $todo = {
 my ($ibx_name, $urls, @gone);
 my $client = sub {
        my ($cb) = @_;
-       for (@$urls) {
-               my $url = "/$ibx_name/$_";
+       for my $u (@$urls) {
+               my $url = "/$ibx_name/$u";
                my $res = $cb->(GET($url));
                is($res->code, 200, $url);
                next if $res->code == 200;

Reply via email to