about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2021-09-08 18:48:20 +0000
committerEric Wong <e@80x24.org>2021-09-09 04:50:33 +0000
commitc033dde5f54fa886b5bef5b9d5c13aa8624e8df4 (patch)
tree15164dccffb3e3ef566fb8131541e30492869e38
parent656345685dae0de213d95f88f34d7b73da759df7 (diff)
downloadpublic-inbox-c033dde5f54fa886b5bef5b9d5c13aa8624e8df4.tar.gz
-F/--in-format and --lock=TYPE(S) are easily supported by
all classes using LeiInput.
-rw-r--r--Documentation/lei-rm.pod72
-rw-r--r--MANIFEST1
-rw-r--r--Makefile.PL2
-rw-r--r--lib/PublicInbox/LEI.pm2
4 files changed, 75 insertions, 2 deletions
diff --git a/Documentation/lei-rm.pod b/Documentation/lei-rm.pod
new file mode 100644
index 00000000..f2a0c0f0
--- /dev/null
+++ b/Documentation/lei-rm.pod
@@ -0,0 +1,72 @@
+=head1 NAME
+
+lei-rm - unindex a message in lei/store
+
+=head1 SYNOPSIS
+
+lei rm [OPTIONS] (-|--stdin)
+
+lei rm [OPTIONS] LOCATION
+
+=head1 DESCRIPTION
+
+Removes message(s) and associated private metadata from lei/store
+indices.  It does not affect messages stored in externals, so it's
+still possible to get "removed" messages from externals in L<lei-q>
+search results.
+
+This does not remove the message from underlying git storage nor
+does it remove messages from Maildir/mbox/IMAP/etc. sources.
+
+=head1 OPTIONS
+
+=over
+
+=item -
+
+=item --stdin
+
+Read input from standard input.  This is the default if standard
+input is a pipe or regular file and there are no arguments on
+the command-line.
+
+=item -F MAIL_FORMAT
+
+=item --in-format=MAIL_FORMAT
+
+Message input format: C<eml>, C<maildir>, C<imap>, C<imaps>, C<nntp>,
+C<nntps>, C<mboxrd>, C<mboxcl2>, C<mboxcl>, or C<mboxo>.
+
+Default: C<eml> when reading from stdin
+
+=item --lock=METHOD
+
+L<mbox(5)> locking method(s) to use: C<dotlock>, C<fcntl>, C<flock> or
+C<none>.
+
+Default: fcntl,dotlock
+
+=item -q
+
+=item --quiet
+
+Suppress feedback messages.
+
+=back
+
+=head1 CONTACT
+
+Feedback welcome via plain-text mail to L<mailto:meta@public-inbox.org>
+
+The mail archives are hosted at L<https://public-inbox.org/meta/> and
+L<http://4uok3hntl7oi7b4uf4rtfwefqeexfzil2w6kgk2jn5z2f764irre7byd.onion/meta/>
+
+=head1 COPYRIGHT
+
+Copyright all contributors L<mailto:meta@public-inbox.org>
+
+License: AGPL-3.0+ L<https://www.gnu.org/licenses/agpl-3.0.txt>
+
+=head1 SEE ALSO
+
+L<lei-store-format(5)>
diff --git a/MANIFEST b/MANIFEST
index fad29622..531f8c46 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -42,6 +42,7 @@ Documentation/lei-overview.pod
 Documentation/lei-p2q.pod
 Documentation/lei-q.pod
 Documentation/lei-rediff.pod
+Documentation/lei-rm.pod
 Documentation/lei-store-format.pod
 Documentation/lei-tag.pod
 Documentation/lei-up.pod
diff --git a/Makefile.PL b/Makefile.PL
index 2af8c2f1..82b50543 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -48,7 +48,7 @@ $v->{-m1} = [ map {
         lei-add-external lei-blob lei-config lei-convert lei-edit-search
         lei-daemon-kill lei-daemon-pid lei-forget-external lei-forget-search
         lei-import lei-init lei-lcat lei-ls-external lei-ls-label
-        lei-ls-mail-sync lei-ls-search lei-p2q lei-q lei-rediff lei-tag
+        lei-ls-mail-sync lei-ls-search lei-p2q lei-q lei-rediff lei-rm lei-tag
         lei-up)];
 $v->{-m5} = [ qw(public-inbox-config public-inbox-v1-format
                 public-inbox-v2-format public-inbox-extindex-format
diff --git a/lib/PublicInbox/LEI.pm b/lib/PublicInbox/LEI.pm
index a258722e..3dce0236 100644
--- a/lib/PublicInbox/LEI.pm
+++ b/lib/PublicInbox/LEI.pm
@@ -226,7 +226,7 @@ our %CMD = ( # sorted in order of importance/use:
 'rm' => [ '--stdin|LOCATION...',
         'remove a message from the index and prevent reindexing',
         'stdin|', # /|\z/ must be first for lone dash
-        @c_opt ],
+        qw(in-format|F=s lock=s@), @c_opt ],
 'plonk' => [ '--threads|--from=IDENT',
         'exclude mail matching From: or threads from non-Message-ID searches',
         qw(stdin| threads|t from|f=s mid=s oid=s), @c_opt ],