From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 8AA031FA1A for ; Thu, 28 Oct 2021 11:15:02 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 8/8] lei rm: move generic input_maildir_cb to LeiInput parent class Date: Thu, 28 Oct 2021 11:15:01 +0000 Message-Id: <20211028111501.24014-9-e@80x24.org> In-Reply-To: <20211028111501.24014-1-e@80x24.org> References: <20211028111501.24014-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: It's not much of a savings, right now, but maybe it can be in the future. I wanted to eliminate the "lei convert" one, too, but convert needs to preserve keywords which isn't possible with the generic fallback, so new tests were written for convert, instead. --- lib/PublicInbox/LeiInput.pm | 5 +++++ lib/PublicInbox/LeiRm.pm | 5 ----- t/lei-convert.t | 10 ++++++++++ 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/lib/PublicInbox/LeiInput.pm b/lib/PublicInbox/LeiInput.pm index 540681e3ff6b..84fc579dc480 100644 --- a/lib/PublicInbox/LeiInput.pm +++ b/lib/PublicInbox/LeiInput.pm @@ -64,6 +64,11 @@ sub input_mbox_cb { # base MboxReader callback $self->input_eml_cb($eml); } +sub input_maildir_cb { + my ($fn, $kw, $eml, $self) = @_; + $self->input_eml_cb($eml); +} + sub input_net_cb { # imap_each, nntp_each cb my ($url, $uid, $kw, $eml, $self) = @_; $self->input_eml_cb($eml); diff --git a/lib/PublicInbox/LeiRm.pm b/lib/PublicInbox/LeiRm.pm index 524c178e3b47..cc1abbff66cb 100644 --- a/lib/PublicInbox/LeiRm.pm +++ b/lib/PublicInbox/LeiRm.pm @@ -13,11 +13,6 @@ sub input_eml_cb { # used by PublicInbox::LeiInput::input_fh $self->{lei}->{sto}->wq_do('remove_eml', $eml); } -sub input_maildir_cb { - my (undef, $kw, $eml, $self) = @_; # $_[0] $filename ignored - input_eml_cb($self, $eml); -} - sub lei_rm { my ($lei, @inputs) = @_; $lei->_lei_store(1)->write_prepare($lei); diff --git a/t/lei-convert.t b/t/lei-convert.t index 0ea860c82189..e1849ff796cd 100644 --- a/t/lei-convert.t +++ b/t/lei-convert.t @@ -115,5 +115,15 @@ test_lei({ tmpdir => $tmpdir }, sub { @bar = (); PublicInbox::MboxReader->mboxrd($fh, sub { push @bar, shift }); is_deeply(\@bar, [ $qp_eml ], 'readed gzipped mboxrd'); + + # Status => Maildir flag => Status round trip + $lei_out =~ s/^Status: O/Status: RO/sm or xbail "`seen' Status"; + $rdr = { 0 => \($in = $lei_out), %$lei_opt }; + lei_ok([qw(convert -F mboxrd -o), "$d/md2"], undef, $rdr); + @md = glob("$d/md2/*/*"); + is(scalar(@md), 1, 'one message'); + like($md[0], qr/:2,S\z/, "`seen' flag set in Maildir"); + lei_ok(qw(convert -o mboxrd:/dev/stdout), "$d/md2"); + like($lei_out, qr/^Status: RO/sm, "`seen' flag preserved"); }); done_testing;