X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=Documentation%2Flei-overview.pod;h=99fd6ef72174e5759669a4131f9563d04e2ee0bb;hb=ab02e4a584a4ed3ce457f24ccc058522344fc6cd;hp=d190304569ec109682da526f64c2cc5705646eed;hpb=e49cf9c629c0fd3024bdb63b5c5e84b590814c4e;p=public-inbox.git diff --git a/Documentation/lei-overview.pod b/Documentation/lei-overview.pod index d1903045..99fd6ef7 100644 --- a/Documentation/lei-overview.pod +++ b/Documentation/lei-overview.pod @@ -9,17 +9,43 @@ provides some basic examples. =head1 LEI STORE -L initializes writable local storage based on -L. +lei has writable local storage based on L. +Commands will automatically initialize the store behind the scenes if +needed, but you can call L directly if you want to use a +store location other than the default C<$XDG_DATA_HOME/lei/store>. -TODO: Extend when lei-import and friends are added. +The L command provides the primary interface for +importing messages into the local storage. In addition, other +commands, such as L and L, use the local store +to memoize messages from remotes. + +=head2 EXAMPLES + +=over + +=item $ lei import mboxrd:t.mbox.gz + +Import the messages from a gzipped mboxrd into the local storage. + +=item $ lei blob 59ec517f9 + +Show message with the git blob OID of 59ec517f9. If a message with +that OID isn't found, check if the current git repository has the +blob, trying to reconstruct it from a message if needed. + +=item $ lei blob 59ec517f9 | lei tag -F eml +kw:flagged +L:next + +Set the "flagged" keyword and "next" label on the message with the +blob OID of 59ec517f9. + +=back =head1 EXTERNALS In addition to the above store, lei can make read-only queries to "externals": inboxes and external indices. An external can be registered by passing a URL or local path to L. -For local paths, the external needs to be indexed with +For existing local paths, the external needs to be indexed with L (in the case of a regular inbox) or L (in the case of an external index). @@ -31,6 +57,11 @@ L (in the case of an external index). Add a remote external for public-inbox's inbox. +=item $ lei add-external --mirror https://public-inbox.org/meta/ path + +Clone L to C, index it with +L, and add it as a local external. + =back =head1 SEARCHING @@ -51,22 +82,75 @@ Search for messages whose subject includes "lei" and "skeleton". Do the same, but also report unmatched messages that are in the same thread as a matched message. -=item $ lei q -t -o t.mbox -f mboxcl2 --mua=mutt s:lei s:skeleton +=item $ lei q -t -o /tmp/mdir --mua=mutt s:lei s:skeleton + +Write results to a Maildir at "mdir". Mutt will be invoked +to open mfolder (C) while results are being fetched +and written. + +=item $ lei q kw:flagged L:next -Write mboxcl2-formatted results to t.mbox and enter mutt to view the -file by invoking C. +Search for all flagged messages that also have a "next" label. + +=item $ lei p2q HEAD | lei q -tt -o /tmp/mdir + +Search for messages that have post-image git blob IDs that match those +of the current repository's HEAD commit, writing them to the Maildir +directory "mdir" and flagging the messages that were an exact match. + +=item $ git show -s HEAD | lei lcat + +Display a local message for the public-inbox link contained in a +commit message. + +=item $ lei q -f text m:MESSAGE-ID | lei rediff -U5 + +Feed a message containing a diff to L to regenerate its +diff with five context lines. Unless C<--git-dir> is specified, this +requires the current working directory to be within the associated +code repository. =back +=head1 PERFORMANCE NOTES + +L is required, lei runs as a background daemon to reduce +startup costs and can provide real-time L/L +Maildir monitoring. L (p5-IO-KQueue on FreeBSD) and +L (liblinux-inotify2-perl and perl-Linux-Inotify2 in +.deb and .rpm-based distros, respectively) are recommended. + +L is optional (libsocket-msghdr-perl in Debian), +and further improves startup performance. Its effect is most felt +when using shell completion. + +=head1 BASH COMPLETION + +Preliminary Bash completion for lei is provided in +C. Contributions adding support for other +shells, as well as improvements to the existing Bash completion, are +welcome. + +=head1 UPGRADING + +Since lei runs as a daemon, L is required to kill +the daemon so it can load new code. It will be restarted with the +next invocation of any lei command. + +=head1 CAVEATS + +IMAP and NNTP client performance is poor on high-latency connections. +It will hopefully be fixed in 2022. + =head1 CONTACT Feedback welcome via plain-text mail to L -The mail archives are hosted at L -and L +The mail archives are hosted at L and +L =head1 COPYRIGHT -Copyright 2021 all contributors L +Copyright all contributors L License: AGPL-3.0+ L