brag [-s server] [-P port] [-g group] [-l user] [-p pass] [-q] [-u] [-o dir] [-n num] [-c] [-C] [-X] [-a pattern [-a pattern] ...] [-r pattern [-r pattern] ...] [-A file] [-R file] [-t n] [-b break] [-m max]


brag -L [-s server] [-P port] [-l user] [-p pass]


brag downloads and assembles multipart binaries from an NNTP server. Attachments encoded with uuencode, Base64 or yenc are supported.



Just print a list of groups available at the server

-s server

Set news server to server

-P port

Set TCP port to port

-g group

Set newsgroup to group

-l user

Set user name to user. Setting this option turns NNTP authentication on. The password can be specified using the -p command line option, or using a passwod file (see later)

-p pass

Set password to pass.


Be silent: do not display progress information


Save subjects together with the assembled binaries. Subject files have the same name as the binary, with .sub extension added


Keep original file names when possible, only rename when necessary to avoid a collission with existing files

-o dir

Set output directory to dir

-n num

Start with message number num


Combine parts, even if they are from different newsgroups. Also, an article will be downloaded only once, even if it was crossposted to more than one newsgroups


Combine parts, even if they are from different news servers


Process single-part messages, too

-a pattern

Add pattern to the list of accept patterns. See next section on accept/reject patterns

-r pattern

Add pattern to the list of reject patterns

-A file

Read accept patterns from this file

-R file

Read reject patterns from this file

-t n

Use n number of parallel connections to the server. Default: 2. Set to 4 or more if you have a high speed network connection

-b break

Specify "break factor": the number of milliseconds to wait between retrieving lines from the server. Useful to share a low-speed connection with other applications

-m max

Specify the maximum number of messages to download


The subjects of the messages to be downloaded are matched against the list of accept and/or reject patterns if specified on the command line or in the accept/reject files (see later). Only articles matching at least one of the accept patterns will be accepted. Similarly, articles matching one of the reject patterns will be rejected.

Match operations are performed as in csh(1). For example, to accept all files with extension mp5 , specify

    .I "-a \'*.mp5*'"

on the command line. Note the quotes (we do not want the shell to process the pattern) and the second "*" (we are matching against subject lines, not file names).



Grabbed files are collected in ~/.brag/<server>/<group>/finished (if not specified otherwise using the -o command line option). If combining parts from multiple servers ("-C" option), the results are collected in ~/.brag/all-servers/<group>/finished.


Work files are kept in ~/.brag/<server>/<group>/unfinished or in ~/.brag/all-servers/<group>/unfinished if the "-C" option is used. It is recommended to regularly purge these directories by removing old files and subdirectories. What "old" means depends on the newsgroup's traffic; one week can be a good approximation.


Passwords can be specified on the command line, or for extra security, in password files. Each server can have its own password file, named ~/.brag/<server>/passwd. The format of these files is:

    .I "user1:password1"

    .I "user2:password2"

    .I "..."

Passwords are not encoded. Take care of the file ownership and permissions.


If a file called accept is present in ~/.brag/<server>/<group>, its lines are added to the list of accept patterns. Empty ones and comments starting with "#" are ignored. Similarly, the contents of the file named reject will be added to the list of reject patterns.





Usage errors


Network errors


File system errors


If not specified on the command line, the environment variable NNTPSERVER identifies the server, while NNTPGROUP the group to read the news from.


brag is written in Tcl; you need tclsh(1) version 8.0 or later. For the actual decoding of dowloaded parts uudeview(1) ( is used.


Akos Polster ([email protected]) and many others - see README for the complete list of contributors.