]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/Config.pm
config: assume lists have multiple addresses
[public-inbox.git] / lib / PublicInbox / Config.pm
index 323f8a1aa6e13397c7933ec7a156654b84554ed8..2be485e5efd68d038d877a39733466f6ce5a68bb 100644 (file)
@@ -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
                        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;
        }