diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/PublicInbox/Inbox.pm | 18 | ||||
-rw-r--r-- | lib/PublicInbox/Search.pm | 14 |
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"; |