]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/V2Writable.pm
search: support SWIG-generated Xapian.pm
[public-inbox.git] / lib / PublicInbox / V2Writable.pm
index 1825da2cf69f6ed2dc87ab8ea15b9bb1343e3308..77b3bde4d7b35939ba633ae961c671489d5f3146 100644 (file)
@@ -62,10 +62,13 @@ sub count_shards ($) {
        # Also, shard count may change while -watch is running
        # due to "xcpdb --reshard"
        if (-d $xpfx) {
+               require PublicInbox::Search;
+               PublicInbox::Search::load_xapian();
+               my $XapianDatabase = $PublicInbox::Search::X{Database};
                foreach my $shard (<$xpfx/*>) {
                        -d $shard && $shard =~ m!/[0-9]+\z! or next;
                        eval {
-                               Search::Xapian::Database->new($shard)->close;
+                               $XapianDatabase->new($shard)->close;
                                $n++;
                        };
                }
@@ -1128,6 +1131,7 @@ sub sync_prepare ($$$) {
                                --no-notes --no-color --no-renames
                                --diff-filter=AM), $range, '--', 'm');
                ++$n while <$fh>;
+               close $fh or die "git log failed: \$?=$?";
                $pr->("$n\n") if $pr;
                $regen_max += $n;
        }
@@ -1195,7 +1199,7 @@ sub unindex ($$$$) {
                unindex_oid($self, $git, $1, $unindexed);
        }
        delete $self->{reindex_pipe};
-       $fh = undef;
+       close $fh or die "git log failed: \$?=$?";
 
        return unless $sync->{-opt}->{prune};
        my $after = scalar keys %$unindexed;
@@ -1203,7 +1207,7 @@ sub unindex ($$$$) {
 
        # ensure any blob can not longer be accessed via dumb HTTP
        PublicInbox::Import::run_die(['git', "--git-dir=$git->{git_dir}",
-               qw(-c gc.reflogExpire=now gc --prune=all)]);
+               qw(-c gc.reflogExpire=now gc --prune=all --quiet)]);
 }
 
 sub sync_ranges ($$$) {
@@ -1251,7 +1255,7 @@ sub index_epoch ($$$) {
                        mark_deleted($self, $sync, $git, $1);
                }
        }
-       $fh = undef;
+       close $fh or die "git log failed: \$?=$?";
        delete $self->{reindex_pipe};
        update_last_commit($self, $git, $i, $cmt) if defined $cmt;
 }