# Copyright (C) 2021 all contributors # License: AGPL-3.0+ # implements the "lei rm" command, you can point this at # an entire spam mailbox or read a message from stdin package PublicInbox::LeiRm; use strict; use v5.10.1; use parent qw(PublicInbox::IPC PublicInbox::LeiInput); sub input_eml_cb { # used by PublicInbox::LeiInput::input_fh my ($self, $eml) = @_; $self->{lei}->{sto}->wq_do('remove_eml', $eml); } sub lei_rm { my ($lei, @inputs) = @_; $lei->_lei_store(1)->write_prepare($lei); $lei->{opt}->{'in-format'} //= 'eml' if $lei->{opt}->{stdin}; my $self = bless {}, __PACKAGE__; $self->prepare_inputs($lei, \@inputs) or return; $lei->{-err_type} = 'non-fatal'; $lei->wq1_start($self); } no warnings 'once'; *ipc_atfork_child = \&PublicInbox::LeiInput::input_only_atfork_child; *net_merge_all_done = \&PublicInbox::LeiInput::input_only_net_merge_all_done; 1;