X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FConfig.pm;h=2be485e5efd68d038d877a39733466f6ce5a68bb;hb=bde2d8c8de65a4d6b06e8d7365f504f2d8db90a6;hp=55019e9f407d1b60f5cb0d3be19867a1d062111e;hpb=dffd0cd44d80064e668faeeb643e31b3a4b0b91f;p=public-inbox.git diff --git a/lib/PublicInbox/Config.pm b/lib/PublicInbox/Config.pm index 55019e9f..2be485e5 100644 --- a/lib/PublicInbox/Config.pm +++ b/lib/PublicInbox/Config.pm @@ -111,7 +111,7 @@ sub git_config_dump { my $fh = popen_rd(\@cmd) or die "popen_rd failed for $file: $!\n"; my %rv; local $/ = "\n"; - foreach my $line (<$fh>) { + while (defined(my $line = <$fh>)) { chomp $line; my ($k, $v) = split(/=/, $line, 2); my $cur = $rv{$k}; @@ -134,16 +134,27 @@ sub _fill { my ($self, $pfx) = @_; my $rv = {}; - foreach my $k (qw(mainrepo address filter url newsgroup + foreach my $k (qw(mainrepo filter url newsgroup infourl watch watchheader httpbackendmax - feedmax)) { + replyto feedmax nntpserver)) { my $v = $self->{"$pfx.$k"}; $rv->{$k} = $v if defined $v; } + foreach my $k (qw(obfuscate)) { + my $v = $self->{"$pfx.$k"}; + defined $v or next; + if ($v =~ /\A(?:false|no|off|0)\z/) { + $rv->{$k} = 0; + } elsif ($v =~ /\A(?:true|yes|on|1)\z/) { + $rv->{$k} = 1; + } else { + warn "Ignoring $pfx.$k=$v in config, not boolean\n"; + } + } # TODO: more arrays, we should support multi-value for # more things to encourage decentralization - foreach my $k (qw(altid nntpmirror)) { + foreach my $k (qw(address altid nntpmirror)) { if (defined(my $v = $self->{"$pfx.$k"})) { $rv->{$k} = ref($v) eq 'ARRAY' ? $v : [ $v ]; } @@ -155,12 +166,7 @@ sub _fill { $rv->{name} = $name; $rv->{-pi_config} = $self; $rv = PublicInbox::Inbox->new($rv); - my $v = $rv->{address}; - if (ref($v) eq 'ARRAY') { - $self->{-by_addr}->{lc($_)} = $rv foreach @$v; - } else { - $self->{-by_addr}->{lc($v)} = $rv; - } + $self->{-by_addr}->{lc($_)} = $rv foreach @{$rv->{address}}; if (my $ng = $rv->{newsgroup}) { $self->{-by_newsgroup}->{$ng} = $rv; }