X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;ds=sidebyside;f=lib%2FPublicInbox%2FConfig.pm;h=458f29b2964d32c592f0e33d9c060216efb6aee7;hb=b3a04ae18a42ed960c89cc81c209633da6976380;hp=1ba1225e9085a8305268c2d004ac45f120a94ec3;hpb=7778d7abd5acb2ba7c32de10cec1369f3982bf84;p=public-inbox.git diff --git a/lib/PublicInbox/Config.pm b/lib/PublicInbox/Config.pm index 1ba1225e..458f29b2 100644 --- a/lib/PublicInbox/Config.pm +++ b/lib/PublicInbox/Config.pm @@ -1,4 +1,4 @@ -# Copyright (C) 2014-2019 all contributors +# Copyright (C) 2014-2020 all contributors # License: AGPL-3.0+ # # Used throughout the project for reading configuration @@ -156,7 +156,7 @@ sub config_fh_parse ($$$) { sub git_config_dump { my ($file) = @_; return {} unless -e $file; - my @cmd = (qw/git config -z -l/, "--file=$file"); + my @cmd = (qw/git config -z -l --includes/, "--file=$file"); my $cmd = join(' ', @cmd); my $fh = popen_rd(\@cmd); my $rv = config_fh_parse($fh, "\0", "\n"); @@ -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 ($) { @@ -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= @@ -363,7 +367,7 @@ sub _fill { my $ibx = {}; foreach my $k (qw(inboxdir filter newsgroup - watch watchheader httpbackendmax + watch httpbackendmax replyto feedmax nntpserver indexlevel)) { my $v = $self->{"$pfx.$k"}; $ibx->{$k} = $v if defined $v; @@ -384,7 +388,7 @@ sub _fill { # TODO: more arrays, we should support multi-value for # more things to encourage decentralization foreach my $k (qw(address altid nntpmirror coderepo hide listid url - infourl)) { + infourl watchheader)) { if (defined(my $v = $self->{"$pfx.$k"})) { $ibx->{$k} = _array($v); }