]> Sergey Matveev's repositories - public-inbox.git/blob - Documentation/lei-q.pod
doc lei: don't render most to-do comments
[public-inbox.git] / Documentation / lei-q.pod
1 =head1 NAME
2
3 lei-q - search for messages matching terms
4
5 =head1 SYNOPSIS
6
7 lei q [OPTIONS] TERM [TERM...]
8
9 lei q [OPTIONS] (--stdin|-)
10
11 =head1 DESCRIPTION
12
13 Search for messages across the lei store and externals.
14
15 =for comment
16 TODO: Give common prefixes, or at least a description/reference.
17
18 =head1 OPTIONS
19
20 =for comment
21 TODO: mention curl options?
22
23 =over
24
25 =item --stdin
26
27 Read search terms from stdin.
28
29 =item -o MFOLDER, --output=MFOLDER, --mfolder=MFOLDER
30
31 Destination for results (e.g., C<path/to/Maildir>,
32 C<imaps://user@mail.example.com/INBOX.test>, or
33 C<mboxcl2:path/to/mbox>).  The prefix may be a supported protocol:
34 C<imap://>, C<imaps://>, C<nntp://>, or C<nntps://>.  URLs requiring
35 authentication must use L<netrc(5)> and/or L<git-credential(1)> to
36 fill in the username and password.
37
38 The prefix can instead specify the format of the output: C<maildir>,
39 C<mboxrd>, C<mboxcl2>, C<mboxcl>, C<mboxo>, C<json>, C<jsonl>, or
40 C<concatjson>.  When a format isn't specified, it's chosen based on
41 the destination.  C<json> is used for the default destination
42 (stdout), and C<maildir> is used for an existing directory or
43 non-existing path.
44
45 =for comment
46 TODO: Provide description of formats?
47
48 Default: -
49
50 =item -f FORMAT, --format=FORMAT
51
52 Format of results.  This option exists as a convenient way to specify
53 the format for the default stdout destination.  Using a C<format:>
54 prefix with the C<--output> destination is preferred otherwise.
55
56 =item --pretty
57
58 Pretty print C<json> or C<concatjson> output.  If stdout is opened to
59 a tty and used as the C<--output> destination, C<--pretty> is enabled
60 by default.
61
62 =item --mua=COMMAND
63
64 A command to run on C<--output> Maildir or mbox (e.g., C<mutt -f %f>).
65 For a subset of MUAs known to accept a mailbox via C<-f>, COMMAND can
66 be abbreviated to the name of the program: C<mutt>, C<mailx>, C<mail>,
67 or C<neomutt>.
68
69 =item --alert=COMMAND[,COMMAND...]
70
71 Run C<COMMAND> after writing to output.  C<:WINCH> indicates to send
72 C<SIGWINCH> to the C<--mua> process.  C<:bell> indicates to print a
73 bell code.  Any other value is interpreted as a command to execute as
74 is.
75
76 This option may be given multiple times.
77
78 Default: C<:WINCH,:bell> when C<--mua> is specified and C<--output>
79 doesn't point to stdout, nothing otherwise.
80
81 =item -a, --augment
82
83 Augment output destination instead of clobbering it.
84
85 =item -t, --threads
86
87 Return all messages in the same thread as the actual match(es).
88
89 Using this twice (C<-tt>) sets the C<flagged> (AKA "important")
90 on messages which were actual matches.  This is useful to distinguish
91 messages which were direct hits from messages which were merely part
92 of the same thread.
93
94 TODO: Warning: this flag may become persistent and saved in
95 lei/store unless an MUA unflags it!  (Behavior undecided)
96
97 =item -d STRATEGY, --dedupe=STRATEGY
98
99 Strategy for deduplicating messages: C<content>, C<oid>, C<mid>, or
100 C<none>.
101
102 Default: C<content>
103
104 =for comment
105 TODO: Provide description of strategies?
106
107 =item --[no-]remote
108
109 Whether to include results requiring network access.  When local
110 externals are configured, C<--remote> must be explicitly passed to
111 enable reporting of results from remote externals.
112
113 =item --no-local
114
115 Limit operations to those requiring network access.
116
117 =item --no-external
118
119 Don't include results from externals.
120
121 =item -I LOCATION, --include=LOCATION
122
123 Include specified external in search.  This option may be given
124 multiple times.
125
126 =item --exclude=LOCATION
127
128 Exclude specified external from search.  This option may be given
129 multiple times.
130
131 =item --only=LOCATION
132
133 Use only the specified external for search.  This option may be given
134 multiple times, in which case the search uses only the specified set.
135
136 =item -g, --globoff
137
138 Do not match locations using C<*?> wildcards and C<[]> ranges.  This
139 option applies to C<--include>, C<--exclude>, and C<--only>.
140
141 =item --no-import-remote
142
143 Disable the default behavior of memoizing remote messages into the
144 local store.
145
146 =item --lock
147
148 L<mbox(5)> locking method(s) to use: C<dotlock>, C<fcntl>, C<flock> or
149 C<none>.
150
151 Default: fcntl,dotlock
152
153 =item -NUMBER, -n NUMBER, --limit=NUMBER
154
155 Limit the number of matches.
156
157 Default: 10000
158
159 =item --offset=NUMBER
160
161 Shift start of search results.
162
163 Default: 0
164
165 =item -r, --reverse
166
167 Reverse the results.  Note that this applies before C<--limit>.
168
169 =item -s KEY, --sort=KEY
170
171 Order the results by KEY.  Valid keys are C<received>, C<relevance>,
172 and C<docid>.
173
174 Default: C<received>
175
176 =item -v, --verbose
177
178 Provide more feedback on stderr.
179
180 =item -q, --quiet
181
182 Suppress feedback messages.
183
184 =item --torsocks=auto|no|yes, --no-torsocks
185
186 Whether to wrap L<git(1)> and L<curl(1)> commands with torsocks.
187
188 Default: C<auto>
189
190 =back
191
192 =head1 CONTACT
193
194 Feedback welcome via plain-text mail to L<mailto:meta@public-inbox.org>
195
196 The mail archives are hosted at L<https://public-inbox.org/meta/>
197 and L<http://hjrcffqmbrq6wope.onion/meta/>
198
199 =head1 COPYRIGHT
200
201 Copyright 2021 all contributors L<mailto:meta@public-inbox.org>
202
203 License: AGPL-3.0+ L<https://www.gnu.org/licenses/agpl-3.0.txt>
204
205 =head1 SEE ALSO
206
207 L<lei-add-external(1)>,
208 L<Xapian::QueryParser Syntax|https://xapian.org/docs/queryparser.html>