]> Sergey Matveev's repositories - public-inbox.git/commitdiff
lei import: simplify Maildir handling
authorEric Wong <e@80x24.org>
Wed, 10 Mar 2021 13:23:43 +0000 (13:23 +0000)
committerEric Wong <e@80x24.org>
Thu, 11 Mar 2021 03:39:16 +0000 (23:39 -0400)
Having a one-off Maildir functionality in LeiStore doesn't seem
worth the maintenance burden, especially given an upcoming
change to skip trashed messages.

I expect this will hurt performance slightly with extra IPC
overhead for the socket copy, but "lei import" may eventually
become rare or at least not hit messages redundantly.

lib/PublicInbox/LeiImport.pm
lib/PublicInbox/LeiStore.pm

index 23cecd53cec816710b8771ae378d3210778926db..815788b38149c5f8f84d298f88fb3b1b65505659 100644 (file)
@@ -147,9 +147,9 @@ error reading $input: $!
        $lei->child_error(1 << 8, "$input: $@") if $@;
 }
 
-sub _import_maildir { # maildir_each_file cb
-       my ($f, $sto, $set_kw) = @_;
-       $sto->ipc_do('set_eml_from_maildir', $f, $set_kw);
+sub _import_maildir { # maildir_each_eml cb
+       my ($f, $kw, $eml, $sto, $set_kw) = @_;
+       $sto->ipc_do('set_eml', $eml, $set_kw ? @$kw : ());
 }
 
 sub _import_net { # imap_each, nntp_each cb
@@ -181,7 +181,7 @@ sub import_path_url {
                return $lei->fail(<<EOM) if $ifmt && $ifmt ne 'maildir';
 $input appears to a be a maildir, not $ifmt
 EOM
-               PublicInbox::MdirReader::maildir_each_file($input,
+               PublicInbox::MdirReader::maildir_each_eml($input,
                                        \&_import_maildir,
                                        $lei->{sto}, $lei->{opt}->{kw});
        } else {
index 92c29100a3ee7372b1cde27bab0013f4736d2c11..6ace2ad1d5c8e46cd4301d2a0c5ef75494fb7920 100644 (file)
@@ -213,12 +213,6 @@ sub set_eml {
        add_eml($self, $eml, @kw) // set_eml_keywords($self, $eml, @kw);
 }
 
-sub set_eml_from_maildir {
-       my ($self, $f, $set_kw) = @_;
-       my $eml = eml_from_path($f) or return;
-       set_eml($self, $eml, $set_kw ? maildir_keywords($f) : ());
-}
-
 sub checkpoint {
        my ($self, $wait) = @_;
        if (my $im = $self->{im}) {