File: nget.1

package info (click to toggle)
nget 0.27.1-11
  • links: PTS
  • area: main
  • in suites: squeeze, wheezy
  • size: 3,172 kB
  • ctags: 2,941
  • sloc: cpp: 15,311; python: 4,075; ansic: 239; makefile: 206; sh: 184
file content (637 lines) | stat: -rw-r--r-- 28,154 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
.TH nget 1 "21 Dec 2004"
.SH NAME
nget \- retrieve files from NNTP (usenet news) hosts
.SH SYNOPSIS
.B nget [...]
.SH DESCRIPTION
.B nget
retrieves messages matching a regular expression, and decodes any files
contained within.  Multipart messages are automatically pieced together.
Parts from multiple servers will be combined if needed.
.SH OPTIONS
.PP
The order options are specified is significant.
In general, an option will only affect options that come after it on the command line.
.PP
.IP "\-q/\-\-quiet"
When specified once, will disable printing of auto-updating text to allow the output to be 
redirected/logged without garbage in it.
When specified twice, will disable printing of merely informative messages.  Errors will still be printed.
.IP "\-h/\-\-host host"
Force only the given host to be used for subsequent commands.  (Must be configured in .ngetrc.)
Can reset to standard auto-choosing method with \-h ""
.IP "\-a/\-\-available"
Update the list of available newsgroups.
Subsequent \-r/\-R commands can be use to search for newsgroups.
.IP "\-A/\-\-quickavailable"
Like \-a/\-\-available, but does not update the list, only makes it available for searching.
.IP "\-X/\-\-xavailable"
Search the group list, but without loading cache file or retrieving full group list.
Instead, the search will be done on the server.
Compared to \-a/\-A this has the advantage of not requiring any disk space for cache files,
and not requiring the initial retrieval of the full group list.
The disadvantages are not all servers supporting the required NNTP extensions,
the inability to use complex regexs due to the need to convert it to the simpler wildmat format,
and the possibility that the commands can be quite slow if the server is overloaded (you may need to increase the timeout value in some cases).
.IP "\-g/\-\-group group(s)"
Update the list of available files in group(s).
Multiple groups can be specified by seperating them with commas.
All cached groups can be selected with "*".
If a host has been specified before
with \-h, it will retrieve headers only from that host.  Otherwise it will
retrieve headers for all hosts above _glevel (see configuration section for
more info on priorities.)
Subsequent \-r/\-R commands can be used to retrieve files.
.IP "\-G/\-\-quickgroup group(s)"
Like \-\-group, but does not retrieve new headers.
.IP "\-x/\-\-xgroup group(s)"
Use group(s) for subsequent \-r commands, but without loading cache file or retrieving full header list.
Instead, the XPAT command will used to retrieve only the matching headers.
Compared to \-g/\-G this has the advantage of not requiring any disk space for cache files,
and not requiring the initial retrieval of the full header list.
The disadvantages are not all servers supporting XPAT,
the inability to use complex regexs due to the need to convert it to the simpler wildmat format,
and the possibility that the xpat command can be quite slow if the server is overloaded (you may need to increase the timeout value in some cases).
.IP "\-F/\-\-flushserver host"
Following \-g/\-G:
Flush all headers for server from current group(s).
.br
Following \-a/\-A:
Flush all groups/descriptions for server from grouplist.
.IP "\-r/\-\-retrieve regex"
Following \-g/\-G/\-x:
Matches regex against subjects of previously selected group(s), and retrieves ones
that match.
.br
Following \-a/\-A:
Matches regex against newsgroup names and descriptions and lists ones that match. (\-T required)
.IP "\-R/\-\-expretrieve expression"
Like \-r, but matches expression instead of merely a regexp.
(see EXPRETRIEVE EXPRESSIONS section for more info.)
Expression is a postfix expression that can contain these keywords:
.br
Following \-g/\-G:
subject, author, lines, bytes, have, req, date, age, update, updateage, messageid(or mid), references.  Note that the \-\-limit
argument does not affect the option, if you want to limit based on number
of lines, add it as part of the expression.
.br
Following \-a/\-A:
group, desc.
.IP "\-@/\-\-list LISTFILE"
Specify a file to load a list of command line args from.  Looks in ~/.nget5/lists/ dir by default.
A # char in a listfile that is the first character on a line or is preceeded by whitespace and not quoted starts a comment which lasts until the end of the line.
.IP "\-p/\-\-path DIRECTORY"
Path to store subsequent retrieves.
Also sets \-P, and clears previously specified dupepaths.
Relative to path which nget was started in.
(Except in the case of inside a \-@, which will be relative to the cwd at the
time of the \-@.)
.IP "\-P/\-\-temppath DIRECTORY"
Store temporary files in path instead of the current dir.
.IP "\-\-dupepath DIRECTORY"
Check for dupe files from specified path in addition to normal path.
Can be specified multiple times.
.IP "\-m/\-\-makedirs no,yes,ask,<max # of directory levels to create>"
Make dirs specified by \-p and \-P.  Default is no.  If yes, will make dirs automatically.
If #, if the number of directories that would need to be created is greater than the number given, the answer will be interpreted as no.
If ask, nget will prompt the user when trying to change to a dir that does not exist.  
Valid responses to the prompt are y[es], n[o], and a max number of directory levels to create.
(This means that if you get in the habit of answering "1" rather than "y", and one day typo the first portion of a path you won't accidentally create a bunch of dirs in the wrong place.)
.IP "\-T/\-\-testmode"
Causes \-\-retrieve to merely print out all matching files.
.IP "\-\-text ignore,files,mbox[:filename]"
Specifies how to handle text posts.  The default is files. 
OPT can be ignore to save only binaries, "files" to save each text post in a different file, and "mbox" to save each text post as a message in a mbox format mailbox.
The name of the mbox file to save in can be specified with mbox:filename, the default is nget.mbox.
If the filename ends in .gz, it will automatically be gzipped.
Unless the filename has an absolute path, it is interpreted as relative to the retrieve path.
.IP "\-\-save\-binary\-info yes,no"
Specifies whether to save text messages for posts that contained only binary data. (If you want to see the headers.)
.IP "\-\-test\-multiserver OPT"
Causes testmode to display which servers have parts of each file.  OPT may be no to disable(default), long for a verbose output, and short for a more condensed form. (In short mode, the shortname of each server is printed with no seperating space, and it is upper-cased if that server does not have all the parts.  If the server has no shortname specified, it defaults to the first char of the server alias.)
.IP "\-\-fullxover OPT"
Override the fullxover settings of the config file.
The default is \-1, which doesn't override.
.IP "\-M/\-\-mark"
Mark matched files as retrieved.
.IP "\-U/\-\-unmark"
Unmark matched files as retrieved.  (Automatically sets \-dI)
.IP "\-t/\-\-tries int"
Set maximum number of retries.  \-1 will retry indefinatly (probably not a good
idea).
.IP "\-l/\-\-limit int"
Set the minimum number of lines a message (or total number of lines for a
multi-part message) must have to be considered for retrieval.
.IP "\-L/\-\-maxlines int"
Set the maximum number of lines a message must have to be considered for retrieval. (\-1 for unlimited)
.IP "\-s/\-\-delay int"
Set the number of seconds to wait between retry attempts.
.IP "\-\-timeout int"
Set the number of seconds to wait for a reply from the nntp server before giving up.
.IP "\-i/\-\-incomplete"
Retrieve files with missing parts.
.IP "\-I/\-\-complete"
Retrieve only files with all parts.
.IP "\-\-decode"
Decode and delete temp files (default)
.IP "\-k/\-\-keep"
Decode and keep temp files.
.IP "\-K/\-\-no\-decode"
Keep temp files, and don't try to decode them.
.IP "\-c/\-\-case"
Match case sensitively.
.IP "\-C/\-\-nocase"
Match case insensitively.
.IP "\-\-autopar"
Enable automatic parfile handling. (default)
Only download as many par files as needed to replace missing or corrupt files.
.IP "\-\-no\-autopar"
Disable automatic parfile handling.
All parfiles that match the expression will be downloaded.
.IP "\-d/\-\-dupecheck FLAGS"
Check to make sure you don't already have files.  This is done in two ways.
The first ("f") is by compiling a list of all files in the current directory, then
checking against all messages to be retrieved to see if one of the filenames
shows up in the subject.  This works reasonably well, though sometimes the
filename isn't in the subject.  It can also cause problems if you happen to
have files in the directory named silly things like "a", in which case all
messages with the word "a" in them will be skipped.  However, it is still smart
enough not to skip messages that merely have a word containing "a".
.br
The second
method ("i") is by setting a flag in the header cache that will prevent it from being
retrieved again.  You can use combos such as \-dfi to check both, \-dFi to only
check the flag, \-dfI to only check files, etc.
.br
The third ("m") will cause files that are found by the dupe file check ("f") to
be marked as retrieved in the cache. (Useful for handling crossposted binaries
and/or binaries saved with another newsreader.)
.IP "\-D/\-\-nodupecheck"
Don't check either of the \-\-dupecheck methods, retrieve any messages that
match.
.IP "\-N/\-\-noconnect"
Do not connect to any server for retrieving articles.
Useful for trying to decode as much as you have.
(if you got stuff with \-K or ngetlite.)
.IP "\-w/\-\-writelite LITEFILE"
Write a list of parts to retrieve with ngetlite.
.IP "\-\-help"
Show help.
.SH "EXPRETRIEVE EXPRESSIONS"
Expressions are in postfix order.
For the int, date, and age types, standard int comparisons are allowed (==, !=, <, <=, >, >=).
For regex types, ==(=~), !=(!~) are allowed.  
.P
Thus a comparison would take the following form:
.br
Infix: <keyword> <operator> <value>  Postfix: <keyword> <value> <operator>
.P
Comparisons can be joined with &&(and), ||(or).
.br
Infix: <comparison> && <comparison>  Postfix: <comparison> <comparison> &&
.SS "\-g/\-G keywords"
.IP "subject (regex)"
Matches the Subject: header.
.IP "author (regex)"
Matches the From: header.
.IP "lines (int)"
Matches the Lines: header.
.IP "bytes (int)"
Matches the length of the message in bytes
.IP "have (int)"
Matches the number of parts of a multipart file that we have.
.IP "req (int)"
Matches the total number of parts of a multipart file.
.IP "date (date)"
Matches the Date: header.
All the standard formats are accepted.
.IP "age (age)"
Matches the time since the Date: header.
.br
Format: [X y[ears]] [X mo[nths]] [X w[eeks]] [X d[ays]] [X h[ours]] [X m[inutes]] [X s[econds]]
.br
Ex.: "6 months 7 hours 8 minutes"
.br
Ex.: "6mo7h8m"
.IP "update (date)"
Matches the "update time" of the cache item.
That is, the most recent time that a new part of the file has been added.
For example, if part 1 was added one day, and part 2 only appeared on the server the next day, then the update time would be when part 2 was added on the second day.  But if both parts were seen on the first day, then seen again from a different server on the second day, the update time would stay at the original value.
.IP "updateage (age)"
Matches the time since the update of the cache item.
.IP "messageid (regex), mid (regex)"
Matches the Message-ID header.  (For multi-part posts, it matches the message-id of the first part.)
.IP "references (regex)"
Matches any of the message's References.
.SS "\-a/\-A keywords"
.IP "group (regex)"
Matches the newsgroup name.
.IP "desc (regex)"
Matches the newsgroup description.
.SH CONFIGURATION
Upon startup, nget will read ~/.nget5/.ngetrc for default configuration values and host/group
aliases.  An example .ngetrc should have been included with nget.
.P
nget will also check ~/_nget5/ and _ngetrc if needed, to handle OS and filesystems that can't (or won't) handle files starting with a period.
.P
Options are specified one per line in the form:
.RS
.B key=value
.RE
.P
Values may be strings(any sequence of characters ending in a newline, not quoted), integers(whole numbers), floats(decimal numbers), boolean(0=false/1=true).
.P
Subsections are specified in the form:
.RS
.B {section_name
.RS
.B data
.RE
.B }
.RE
where data is any number of options.
.P
.SS "Global Configuration Options"
.IP "limit (int, default=0)"
Default value for \-l/\-\-limit
.IP "tries (int, default=20)"
Default value for \-t/\-\-tries
.IP "delay (int, default=1)"
Default value for \-s/\-\-delay
.IP "usegz (int, default=\-1)"
Default gzip compression level to use for cache/midinfo files (can be overridden on a per-group basis).
Acceptable values are \-1=zlib default, 0=uncompressed, and 1-9.
.IP "timeout (int, default=180)"
Seconds to wait for a reply from the nntp server before giving up.
.IP "maxstreaming (int, default=64)"
Sets how many xover commands will be sent at once, when using fullxover.
maxstreaming=0 will disable streaming.  Note that setting
maxstreaming too high can cause your connection to deadlock if the write buffer
is filled up and the write command blocks, but the server will never read more
commands since it is waiting for us to read what it has already sent us.
.IP "maxconnections (int, default=\-1)"
Maximum number of connections to open at once, \-1 to allow unlimited open connections.
When reached, the servers used least recently will be disconnected first.
(Note that regardless of this setting, nget never opens more than one connection per server.)
.IP "idletimeout (int, default=300)"
Max seconds to keep an idle connection to a nntp server open.
.IP "curservmult (float, default=2.0)"
Priority multiplier given to servers which are currently connected.
This can be used to avoid excessive server switching.  (Set to 1.0 if you want to disable it.)
.IP "penaltystrikes (int, default=3)"
Number of consecutive connect errors before penalizing a server, \-1 to disable penalization.
.IP "initialpenalty (int, default=180)"
Number of seconds to ignore a penalized server for.
.IP "penaltymultiplier (float, default=2.0)"
Multiplier for penalty time for each time the penalty time runs out and the server continues to be down.
.IP "case (boolean, default=0)"
Default for regex case sensitivity. (0=\-C/\-\-nocase, 1=\-c/\-\-case)
.IP "complete (boolean, default=1)"
Default for incomplete file filter. (0=\-i/\-\-incomplete, 1=\-I/\-\-complete)
.IP "dupeidcheck (boolean, default=1)"
Default for already downloaded file filter. (0=\-dI, 1=\-di)
.IP "dupefilecheck (boolean, default=1)"
Default for duplicate file filter. (0=\-dF, 1=\-df)
.IP "autopar (boolean, default=1)"
Default for automatic par handling. (0=\-\-no\-autopar, 1=\-\-autopar)
.IP "autopar_optimistic (boolean, default=0)"
One problem with automatic par handling, is that sometimes people do multi-day posts and post the par files first.
If autopar_optimistic is enabled, it will assume that when there aren't enough .pxx files, that it must just be a multi-day post and will not grab any pxx files.
If autopar_optimistic is off, it grab all the pxx files so that if they expire before more are posted, we will already have them.
.IP "quiet (boolean, default=0)"
Default for quiet option. (0=normal, 1=\-q)
.IP "tempshortnames (boolean, default=0)"
1=Use 8.3 tempfile names (for old dos partitions, etc), 0=Use 17.3 tempfile names
.IP "fatal_user_errors (boolean, default=0)"
Makes user/path errors cause an immediate exit rather than continuing if possible.
.IP "unequal_line_error (boolean, default=0)"
If set, downloaded articles whose actual number of lines does not match the expected value will be regarded as an error and ignored.
If 0, a warning will be generated but the article will be accepted.
.IP "fullxover (int, default=0)"
Controls whether nget will check for articles added or removed out of order when updating header cache.
fullxover=0 will follow the nntp spec and assume articles are always added and removed in the correct order.
fullxover=1 will assume articles may be added out of order, but are still removed in order.
fullxover=2 handles articles being added and removed in any order.
.IP "makedirs (special, default=no)"
Create non-existant directories specified by \-p/\-P? (yes/no/ask/#)
.IP "test_multiserver (special, default=no)"
Display multiserver file complition info in testmode output? (no=no, short=show shortname of each server that has parts of the file, lowercase when complete and uppercase when that server only has some parts, long=show fullname of each server along with a count of how many parts it has if it does not have them all.)
.IP "text (special, default=files)"
Default for the \-\-text option (possible values are ignore,files,mbox[:filename]).
.IP "save_binary_info (boolean, default=0)"
Default for the \-\-save\-binary\-info option.
.IP "cachedir (string)"
Specifies a different location to store cache files.  Could be used to share a single cache dir between a trusted group of users, to reduce HD/bandwidth usage, while still allowing each user to have their own config/midinfo files.)
.SS "Host Configuration"
Host configuration is done in the halias section, with a subsection for each
host containing its options:
.IP "address (string, required)"
Address of the server, with optional port number seperated by a colon.
To specify a literal IPv6 address with a port number, use the format "[address]:port".
.IP "id (int, required)"
An identifier for this server.
The id uniquely identifies a certain set of header cache data.
You may specify the same id in more than one host,
for example if you have multiple accounts on a server to avoid to storing the same cache data multiple times.
The id should not be changed after you have used it.
Must be greater than 0 and less than ULONG_MAX. (usually 4294967295).
.IP "shortname (string, default=first character of host alias)"
The shortname to use for this server.
.IP "user (string)"
Username for the server, if it requires authorization.
.IP "pass (string)"
Password for the server, if it requires authorization.
.IP "fullxover (int)"
Override global fullxover setting for this server only.
.IP "maxstreaming (int)"
Override global maxstreaming setting for this server only.
.IP "idletimeout (int)"
Override global idletimeout setting for this server only.
.IP "linelenience (special, default=0)"
The linelenience option may be specified as either a single int, or two ints seperated by a comma.
If only a single int, X is specified, then it will be interpeted as shorthand for "\-X,+X".
These values specify the ammount that the real (recieved) number of lines (inclusive) for an article may deviate from
the values returned by the server in the header listings.  For example, "\-1,2" means that the real number
of lines may be one less than, equal to, one greater than, or two greater than the expected amount.
.P
For example, the following host section defines a single host "host1", with
nntp authentication for user "bob", password "something", and the fullxover
option enabled. 
.RS
.B {halias
.RS
.B  {host1
.RS
.B   addr=news.host1.com
.br
.B   id=3838
.br
.B   user=bob
.br
.B   pass=something
.br
.B   fullxover=1
.br
.B   linelenience=\-1,2
.RE
.B  }
.RE
.B }
.RE
.P
.SS "Server Priority Configuration"
Multiserver priorities are defined in the hpriority section.  Multiple priority
groups can be made, and different newsgroups can be configured to use their own
priority grouping, or they will default to the "default" group.
The \-a option will use the "_grouplist" priority group if it exists, otherwise it will use the "default" group.
.P
The hpriority
section contains a subsection for each priority group, with data items of
server=prio-multiplier, and the special items _level=float and _glevel=float.
_level sets the priority level assigned to any host not listed in the group,
and _glevel sets the required priority needed for \-g and \-a to automatically use that
host.  Both _level and _glevel default to 1.0 if not specified.
.P
The priority group "trustsizes" also has special meaning, and is used to choose which servers
reporting of article line/byte counts to trust when reporting to the user.
.P
For example, the following section defines the default priority group and the
trustsizes priority group.  If all hosts have a certain article, goodhost will
be most likely to be chosen, and badhost least likely.  It also sets the
default priority level to 1.01, meaning any hosts not listed in this group will have a
priority of 1.01.  When using \-g without first specifying a host, only those
with prios 1.2 or above will be selected.
.RS
.B {hpriority
.RS
.B  {default
.RS
.B   _level=1.01
.br
.B   _glevel=1.2
.br
.B   host1=1.9
.br
.B   goodhost=2.0
.br
.B   badhost=0.9
.RE
.B  }
.br
.B  {trustsizes
.RS
.B   goodhost=5.0
.br
.B   badhost=0.1
.RE
.B  }
.RE
.B }
.RE
.P
.SS "Newsgroup Alias Configuration"
Newsgroup aliases are defined in the galias section.  An alias can be a simple
alias=fullname data item, or  a subsection containing group=, prio=, and usegz= items.
The per-group usegz setting will override the global setting.
.P
An alias can also refer to multiple groups (either fullnames or further aliases).
.P
For example, the following galias section defines an alias of "abpl" for the
group "alt.binaries.pictures.linux", "chocobo" for the group "alt.chocobo", and
ospics for both alt.binaries.pictures.linux and alt.binaries.pictures.freebsd.
In addition, the chocobo group is assigned to use the chocoprios priority
grouping when deciding what server to retrieve from.
.RS
.B {galias
.RS
.B  abpl=alt.binaries.pictures.linux
.br
.B  {chocobo
.RS
.B   group=alt.chocobo
.br
.B   prio=chocoprios
.RE
.B  }
.br
.B  ospics=abpl,alt.binaries.pictures.freebsd
.RE
.B }
.RE
.SH "EXIT STATUS"
On exit,  nget will display a summary of the run.  The summary is split into three parts:
.PP
.IP "OK"
Lists successful operations.
.RS
.IP "total"
Total number of "logical messages" retrieved (after joining parts).
.IP "uu"
Number of uuencoded files.
.IP "base64"
Number of Base64 (Mime) files.
.IP "XX"
Number of xxencoded files.
.IP "binhex"
Number of Binhex encoded files.
.IP "plaintext"
Number of plaintext files saved.
.IP "qp"
Number of Quoted-Printable encoded files.
.IP "yenc"
Number of yEncoded files.
.IP "dupe"
Number of decoded files that were exact dupes of existing files, and thus deleted.
.IP "skipped"
Number of files that were queued to download but turned out to be dupes after decoding earlier parts
and comparing their filenames to the subject line.  (Same method thats used for the dupe file check when queueing
them up, just that the filename(s) of any decoded files cannot be known until they are downloaded, so some of
the checking must occur during the run rather than at queue time.)
.IP "group"
Number of groups successfully updated.
.IP "grouplist"
Newsgroup list successfully updated.
.IP "autopar"
Number of parity sets that are complete.
.RE
.IP "WARNINGS"
.RS
.IP "group"
Updating group info failed for some (but not all) attempted servers.
.IP "xover"
Weird things happened while updating group info.
.IP "grouplist"
Updating newsgroup list failed for some (but not all) attempted servers.
.IP "retrieve"
Article retrieval failed for some (but not all) attempted servers.
.IP "undecoded"
Articles were not decoded (usually because \-K was used).
.IP "unequal_line_count"
Some articles retrieved had different line counts than the server said they should.
(And unequal_line_error is set to 0).
.IP "dupe"
Number of decoded files that had the same name as existing files, but different content.
.IP "autopar"
Weirdness encountered reading par files, such as encountering unknown par versions, or non-ascii filenames in the pars.
.RE
.IP "ERRORS"
Lists errors that occured.  In addition, the exit status will be set to a bitwise OR of the codes of all errors that occured.
(Note that some errors share an exit code, since there are only 8 bits available.)
.RS
.IP "decode (exit code 1)"
Number of file decoding errors.
.IP "autopar (exit code 2)"
Number of parity sets that could not be completed.
.IP "path (exit code 4)"
Errors changing to paths specified with \-p or \-P.
.IP "user (exit code 4)"
User errors, such as trying \-r without specifying a group first.
.IP "retrieve (exit code 8)"
Number of times article retrieval failed for all attempted servers.
.IP "group (exit code 16)"
Number of times header retrieval failed for all attempted servers.
.IP "grouplist (exit code 32)"
Number of times newsgroup list retrieval failed for all attempted servers.
.IP "fatal (exit code 128)"
Error preventing further operation, such as "No space left on device".
.IP "other (exit code 64)"
Any other kind of error.
.RE
.SH EXAMPLES
The simplest possible example.  Retrieve and decode everything from alt.binaries.test that you haven't already gotten before:
.br
.B
nget \-g alt.binaries.test \-r ""
.P
get listing of all files matching penguin.*png from alt.binaries.pictures.linux (note this is a regex, equivilant to standard shell glob of penguin*png.. see the regex(7) or grep manpage for more info on regular expressions.)
.br
.B
nget \-g alt.binaries.pictures.linux \-DTr "penguin.*png"
.P
retrieve all the ones that have more than 50 lines:
.br
.B
nget \-g alt.binaries.pictures.linux \-l 50 \-r "penguin.*png"
.P
equivilant to above, using \-R:
.br
.B
nget \-g alt.binaries.pictures.linux \-R "lines 50 > subject penguin.*png == &&"
.br
(basically (lines > 50) && (subject == penguin.*png))
.P
flush all headers from host goodhost in group alt.binaries.pictures.linux:
.br
.B
nget \-Galt.binaries.pictures.linux \-Fgoodhost
.P
retrieve/update group list, and list all groups with "linux" in the name or description:
.br
.B
nget \-a \-Tr linux
.P
equivilant to above, using \-R:
.br
.B
nget \-a \-TR "group linux == desc linux == ||"
.P
flush all groups from host goodhost in grouplist:
.br
.B
nget \-A \-Fgoodhost
.SH NOTES
Running multiple copies of nget at once should be safe.  It uses file locking,
so there should be no way for the files to actually get corrupted.
However if you have two ngets doing a \-g on the same group at the same time, it
would duplicate the download for both processes.  If you are using \-G there is
no problem at all.  (Theoretically you might be able to cause some sort of
problems by downloading the same files from the same group in the same
directory at the same time..)
.SH ENVIRONMENT
.PP
.IP "HOME"
Where to put .nget5 directory. (put nget files $HOME/.nget5/)
.IP "NGETHOME"
Override HOME var (put nget files in $NGETHOME)
.IP "NGETCACHE"
Override HOME/NGETHOME vars and .ngetrc cachedir option (put nget cache files in $NGETCACHE)
.IP "NGETRC"
Alternate configuration file to use.
.SH FILES
.PP
.IP "~/.nget5/"
All configuration and cache files are stored here.  Changed to .nget5/ because
cache format changed in nget 0.27.
(The 5 in the directory name is for file format version 5, not nget version 5.)
To upgrade a .nget4 directory to .nget5, simply run "mv ~/.nget4 ~/.nget5 ; rm ~/.nget5/*,cache*"
.IP "~/.nget5/.ngetrc"
Configuration file.  If you store authentication information here, be sure to
set it readable only by owner.
.IP "~/_nget5/_ngetrc"
Alternate location, use this if you can't create a dir/file starting with a period.
.IP "~/.nget5/lists/"
Default directory for listfiles.
.SH AUTHOR
Matthew Mueller <donut AT dakotacom.net>
.P
The latest version, and other programs I have written, are available from:
.br
http://www.dakotacom.net/~donut/programs/
.SH ACKNOWLEDGEMENTS
Frank Pilhofer, author of uulib, which nget depends upon for uudecoding the files once they are downloaded.
http://www.fpx.de/fp/Software/UUDeview/
.P
Peter Brian Clements, author of par2\-cmdline, which nget uses a stripped down version of for its par2 checking.
http://parchive.sourceforge.net/
.P
The Unix-socket-faq, which my url for has gone bad, but
is supposedly posted monthly on comp.unix.programmer.
.P
Beej's Guide to Network Programming at
http://www.ecst.csuchico.edu/~beej/guide/net/
.P
Jean-loup Gailly and Mark Adler, for the zlib library.
.SH "SEE ALSO"
.BR ngetlite (1),
.BR regex (7),
.BR grep (1)