about summary refs log tree commit homepage
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/PublicInbox/Inbox.pm18
-rw-r--r--lib/PublicInbox/Search.pm14
2 files changed, 9 insertions, 23 deletions
diff --git a/lib/PublicInbox/Inbox.pm b/lib/PublicInbox/Inbox.pm
index 724df50a..61d153bf 100644
--- a/lib/PublicInbox/Inbox.pm
+++ b/lib/PublicInbox/Inbox.pm
@@ -11,8 +11,6 @@ use List::Util qw(max);
 use Carp qw(croak);
 
 # returns true if further checking is required
-sub cleanup_shards { $_[0]->{search} ? $_[0]->{search}->cleanup_shards : undef }
-
 sub check_inodes ($) {
         for (qw(over mm)) { $_[0]->{$_}->check_inodes if $_[0]->{$_} }
 }
@@ -31,7 +29,8 @@ sub do_cleanup {
                 delete(@$ibx{qw(over mm description cloneurl
                                 -imap_url -nntp_url)});
         }
-        $ibx->cleanup_shards and $live = 1;
+        my $srch = $ibx->{search} // $ibx;
+        delete @$srch{qw(xdb qp)};
         for my $git (@{$ibx->{-repo_objs} // []}) {
                 $live = 1 if $git->cleanup(1);
         }
@@ -138,17 +137,18 @@ sub max_git_epoch {
         $cur;
 }
 
+sub mm_file {
+        my ($self) = @_;
+        my $d = $self->{inboxdir};
+        ($self->version >= 2 ? $d : "$d/public-inbox").'/msgmap.sqlite3';
+}
+
 sub mm {
         my ($self, $req) = @_;
         $self->{mm} //= eval {
                 require PublicInbox::Msgmap;
                 _cleanup_later($self);
-                my $dir = $self->{inboxdir};
-                if ($self->version >= 2) {
-                        PublicInbox::Msgmap->new_file("$dir/msgmap.sqlite3");
-                } else {
-                        PublicInbox::Msgmap->new($dir);
-                }
+                PublicInbox::Msgmap->new_file(mm_file($self));
         } // ($req ? croak("E: $@") : undef);
 }
 
diff --git a/lib/PublicInbox/Search.pm b/lib/PublicInbox/Search.pm
index dd6d3710..f0e7ed0c 100644
--- a/lib/PublicInbox/Search.pm
+++ b/lib/PublicInbox/Search.pm
@@ -243,20 +243,6 @@ sub xdb ($) {
         };
 }
 
-# returns true if a future rescan is desired
-sub cleanup_shards {
-        my ($self) = @_;
-        return unless exists($self->{xdb});
-        my $xpfx = $self->{xpfx};
-        return reopen($self) if $xpfx =~ m!/xapian[0-9]+\z!; # true
-        opendir(my $dh, $xpfx) or return warn("$xpfx gone: $!\n"); # true
-        my $nr = grep(/\A[0-9]+\z/, readdir($dh)) or
-                return warn("$xpfx has no shards\n"); # true
-        return reopen($self) if $nr == ($self->{nshard} // -1);
-        delete @$self{qw(xdb qp)};
-        undef;
-}
-
 sub new {
         my ($class, $ibx) = @_;
         ref $ibx or die "BUG: expected PublicInbox::Inbox object: $ibx";