]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/Config.pm
nntpd+imapd: detect replaced over.sqlite3
[public-inbox.git] / lib / PublicInbox / Config.pm
index 2d663515648741c8ab1a94b52bbeba703efd3eb8..19535beb97385a52a27f6650795d8c0d508c6653 100644 (file)
@@ -99,6 +99,24 @@ sub each_inbox {
        }
 }
 
+sub iterate_start {
+       my ($self, $cb, $arg) = @_;
+       my $i = 0;
+       $self->{-iter} = [ \$i, $cb, $arg ];
+}
+
+# for PublicInbox::DS::next_tick, we only call this is if
+# PublicInbox::DS is already loaded
+sub event_step {
+       my ($self) = @_;
+       my ($i, $cb, $arg) = @{$self->{-iter}};
+       my $section = $self->{-section_order}->[$$i++];
+       delete($self->{-iter}) unless defined($section);
+       eval { $cb->($self, $section, $arg) };
+       warn "E: $@ in ${self}::event_step" if $@;
+       PublicInbox::DS::requeue($self) if defined($section);
+}
+
 sub lookup_newsgroup {
        my ($self, $ng) = @_;
        _lookup_fill($self, '-by_newsgroup', lc($ng));
@@ -156,7 +174,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");
@@ -367,7 +385,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;
@@ -388,7 +406,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);
                }