X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FConfig.pm;h=e0ca7c5a0d643e07826d7f8a58ab479d6835e817;hb=7b0ba33ee90396dda20d69fe548d73b479c3912d;hp=56d146c2292f4cf83bc53936ffe4dffcb41e1dd4;hpb=9f5a583694396f84056b9d92255bba0197b52bc8;p=public-inbox.git diff --git a/lib/PublicInbox/Config.pm b/lib/PublicInbox/Config.pm index 56d146c2..e0ca7c5a 100644 --- a/lib/PublicInbox/Config.pm +++ b/lib/PublicInbox/Config.pm @@ -190,6 +190,9 @@ sub cgit_repo_merge ($$$) { return unless -e "$path/$se"; } return if -e "$path/noweb"; + # this comes from the cgit config, and AFAIK cgit only allows + # repos to have one URL, but that's just the PATH_INFO component, + # not the Host: portion # $repo = { url => 'foo.git', dir => '/path/to/foo.git' } my $rel = $repo->{url}; unless (defined $rel) { @@ -207,7 +210,7 @@ sub cgit_repo_merge ($$$) { $rel =~ s!/?\.git\z!!; } $self->{"coderepo.$rel.dir"} //= $path; - $self->{"coderepo.$rel.cgiturl"} //= $rel; + $self->{"coderepo.$rel.cgiturl"} //= _array($rel); } sub is_git_dir ($) { @@ -249,7 +252,7 @@ sub scan_projects_coderepo ($$$) { warn "failed to open cgit projectlist=$list: $!\n"; return; }; - foreach (<$fh>) { + while (<$fh>) { chomp; scan_path_coderepo($self, $path, "$path/$_"); } @@ -274,7 +277,7 @@ sub parse_cgitrc { # FIXME: this doesn't support macro expansion via $VARS, yet my $repo; - foreach (<$fh>) { + while (<$fh>) { chomp; if (m!\Arepo\.url=(.+?)/*\z!) { my $nick = $1; @@ -332,8 +335,9 @@ sub _fill_code_repo { _array($self->{lc("$pfx.${t}UrlFormat")}); } - if (my $cgits = $self->{lc("$pfx.cgitUrl")}) { + if (defined(my $cgits = $self->{"$pfx.cgiturl"})) { $git->{cgit_url} = $cgits = _array($cgits); + $self->{"$pfx.cgiturl"} = $cgits; # cgit supports "/blob/?id=%s", but it's only a plain-text # display and requires an unabbreviated id=