Initial import into the new git repository. Back from the dead!

This commit is contained in:
2018-10-04 21:28:05 +02:00
commit bd80cfbb4d
40 changed files with 11265 additions and 0 deletions

41
doc/Makefile.in Normal file
View File

@@ -0,0 +1,41 @@
# mboxgrep - search mailbox for messages matching a regular expression
# Copyright (C) 2000, 01 Daniel Spiljar
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# $Id: Makefile.in,v 1.1 2001/10/26 13:07:55 dspiljar Exp $
MANPAGE = mboxgrep.1
INSTALL = @INSTALL@
prefix = @prefix@
mandir = @mandir@
infodir = @infodir@
SHELL = /bin/sh
.PHONY: all
all:
.PHONY: distclean
distclean:
rm -f *~ Makefile
.PHONY: install
install: mboxgrep.1
$(INSTALL) -d $(mandir)/man1
$(INSTALL) -m 0644 $(MANPAGE) $(mandir)/man1
$(INSTALL) -d $(infodir)
$(INSTALL) -m 0644 mboxgrep.info $(infodir)
.NOEXPORT:

122
doc/mboxgrep.1 Normal file
View File

@@ -0,0 +1,122 @@
.Id $Id: mboxgrep.1,v 1.15 2003/08/24 19:51:14 dspiljar Exp $
.TH MBOXGREP 1 "24 Aug 2003"
.SH NAME
mboxgrep \- displays email messages matching a pattern
.SH SYNOPSIS
.B mboxgrep
.RI [ OPTIONS ]
.RI PATTERN
.RI [ MAILBOX ]
.SH DESCRIPTION
This manual page refers to
.B mboxgrep
version
.BR 0.7.9 .
.PP
.B mboxgrep
scans a
.I MAILBOX
and displays messages matching
.I PATTERN.
.PP
If a mailbox name is ommited, or a single dash (-) is given instead,
it reads from standard input.
It can read mbox folders or output from another
.B mboxgrep
process from standard input.
.PP
.B mboxgrep
understands POSIX regular expressions, as well as Perl compatible regular
expressions (if enabled at compile time).
.I MAILBOX
can be either a:
.TP
\(bu
mbox folder (either plain or compressed)
.TP
\(bu
MH folder
.TP
\(bu
Gnus nnmh or nnml folder
.TP
\(bu
qmail-style maildir folder
.SH OPTIONS
.PP
.IP "-h, --help"
Display a help screen and exit.
.IP "-V, --version"
Display version and copyright information and exit.
.IP "-r, --recursive"
Descend into directories recursively.
.IP "-E, --extended-regexp"
PATTERN is an extended regular expression. This is default.
.IP "-G, --basic-regexp "
PATTERN is a basic regular expression.
.IP "-P, --perl-regexp"
PATTERN is a Perl regular expression. Works only if enabled at compile time.
.IP "-e, --regexp=PATTERN"
Use PATTERN as a regular expression.
.IP "-i, --ignore-case"
Ignore case distinctions.
.IP "-v, --invert-match"
Select messages which don't match PATTERN.
.IP "-H, --headers"
Match PATTERN against message headers.
.IP "-B, --body"
Match PATTERN against message body.
.IP "-l, --file-lock=METHOD"
Select file locking METHOD. METHOD is `fcntl', `flock', or `none'.
.IP "-nl, --no-file-lock"
Do not lock files. This option is meaningful only if a mbox folder (see below)
is scanned.
.IP "-c, --count"
Suppress normal output and print a count of matching messages.
.IP "-o, --output=FOLDER"
Suppress normal output and write messages to destination folder FOLDER instead.
.IP "-p, --pipe=COMMAND"
Pipe each found message to COMMAND
.IP "-d, --delete"
Suppress normal output and delete selected messages instead. Use with
caution.
.IP "-nd, --no-duplicates"
Ignore duplicate messages.
.IP "-m, --mailbox-format=TYPE"
Select input and output mailbox TYPE. TYPE can be either `mbox' (default),
`zmbox' (meaning `gzip compressed mbox'), `bz2mbox' (meaning `bzip2
compressed mbox'), `mh', `nnml', `nnmh' or `maildir'.
.SH EXAMPLES
.TP
\(bu
Search $MAIL for messages from Dirty Harry:
.PP
mboxgrep '^From:.*callahan@homicide\\.SFPD\\.gov' $MAIL
.TP
\(bu
Display all messages contained in folder ~/Mail/incoming, except those
that appear to originate from AOL:
.PP
mboxgrep -v 'Received:.*aol\\.com' ~/Mail/incoming
.SH BUGS
Report them to address below.
.SH NOTICE
Mboxgrep was alomost completely rewritten since version 0.5.3. Additionally,
there was no stable 0.6.x branch between 0.5.3 and 0.7.0.
.SH SEE ALSO
grep(1),
regex(7),
perlre(1),
mbox(5),
RFC 2822
.SH DEDICATION
Mboxgrep is dedicated in loving memory of Vicky, my cat who died of
tumor on Sep 12, 2002.
.PP
You haven't been long with us, but you gave us a lot of joy and all your
big heart that stopped ticking too early. I will never forget you. Sleep
well, little friend.
.SH URL
http://www.mboxgrep.org/
.SH AUTHOR
Daniel Spiljar <dspiljar@world.std.com>

265
doc/mboxgrep.info Normal file
View File

@@ -0,0 +1,265 @@
This is mboxgrep.info, produced by makeinfo version 4.3 from
mboxgrep.texi.
INFO-DIR-SECTION Mail
START-INFO-DIR-ENTRY
* mboxgrep: (mboxgrep). A mail folder scanning utility.
END-INFO-DIR-ENTRY

File: mboxgrep.info, Node: Top, Up: (dir)
This file documents `mboxgrep' (version 0.7.9), a mailbox scanning
utility.
Copyright (C) 2000, 2001, 2002, 2003 Daniel Spiljar
* Menu:
* Introduction:: A short preface.
* Invoking:: Command-line arguments.
* Examples:: A few examples of usage.
* Bugs:: What to do with bugs and similar vermin.
* To Vicky:: Author's dedication.

File: mboxgrep.info, Node: Introduction, Next: Invoking, Up: Top
Introduction
************
`mboxgrep' is a small, non-interactive utility that scans mail
folders for messages matching regular expressions.
It supports basic and extended POSIX regular expressions.
`Perl'-style regular expressions are supported as well, if `mboxgrep'
is linked with PCRE library.
Found messages can be either displayed on standard output, counted,
deleted, piped to a specified command, or copied to another mailbox.
It can read and write a variety of folder formats:
* mbox folders, either plain or compressed
* MH folders
* nnml and nnmh folders used by Gnus
* `qmail'-style maildirs
Additionally, it can read mbox folders or output from another
`mboxgrep' process from standard input. It does so if a single dash
(-) is given as a file name.

File: mboxgrep.info, Node: Invoking, Next: Examples, Prev: Introduction, Up: Top
Command-Line Arguments
**********************
The syntax of `mboxgrep' invocation is:
mboxgrep [OPTIONS] PATTERN [MAILBOX]
* Menu:
* Miscellaneous::
* File locking::
* Regexp selection::
* Output control::
* Search scope selection::
* Mailbox type selection::

File: mboxgrep.info, Node: Miscellaneous, Next: File locking, Up: Invoking
`--help'
`-h'
Display a brief help screen and exit.
`--version'
`-V'
Display program version and copyright information and exit.
`--recursive'
`-r'
Descend into directories recursively.

File: mboxgrep.info, Node: File locking, Next: Regexp selection, Prev: Miscellaneous, Up: Invoking
When accessing mbox folders, `mboxgrep' puts a shared lock on files
by default. Note that mbox folders normally should not be accessed
without locking.
`--file-lock=METHOD'
`-l METHOD'
Specify file locking METHOD. `mboxgrep' supports `flock' and
`fcntl' file locking. However, one of these methods may be
unimplemented on your operating system and thus not available in
`mboxgrep' at run time. To disable file locking, specify `none'.
`--no-file-lock'
`-nl'
Do not attempt to lock mbox folder files.

File: mboxgrep.info, Node: Regexp selection, Next: Output control, Prev: File locking, Up: Invoking
`--extended-regexp'
`-E'
PATTERN is an extended regular expression.
`--basic-regexp'
`-G'
PATTERN is a basic regular expression.
`--perl-regexp'
`-P'
PATTERN is a Perl regular expression.
`--regexp=PATTERN'
`-e PATTERN'
Use PATTERN as a regular expression.
`--ignore-case'
`-i'
Perform case-insensitive search.
`--invert-match'
`-v'
Invert the sense of matching, i.e. select only non-matching
messages.

File: mboxgrep.info, Node: Output control, Next: Search scope selection, Prev: Regexp selection, Up: Invoking
By default, `mboxgrep' writes found messages to standard output.
The options below change such behavior.
`--count'
`-c'
Suppress normal output and print the count of matching (or
non-matching, if used with the `-v' option) messages.
`--delete'
`-d'
Suppress normal output and delete selected messages.
Use with extreme caution.
`--no-duplicates'
`-nd'
Ignore duplicate messages.
`--output=FOLDER'
`-o FOLDER'
Suppress normal output and write messages to destination folder
FOLDER instead.
Note that `mboxgrep' assumes the output folder is of the same
format as the input folder. Currently there is no possibility to
convert folders.
`--pipe=COMMAND'
`-p COMMAND'
Suppress normal output and pipe each selected message to a separate
instance of COMMAND.
`--no-messages'
`-s'
Suppress error messages.

File: mboxgrep.info, Node: Search scope selection, Next: Mailbox type selection, Prev: Output control, Up: Invoking
`--headers'
`-H'
Match PATTERN against message headers.
`--body'
`-B'
Match PATTERN against message body.

File: mboxgrep.info, Node: Mailbox type selection, Prev: Search scope selection, Up: Invoking
`--mailbox-format=FORMAT'
`-m FORMAT'
Specify mailbox FORMAT. Supported formats are `mbox' (default),
`zmbox' (gzip compressed mbox), `bzmbox' (bzip2 compressed mbox)
`mh', `nnml', `nnmh', and `maildir'.

File: mboxgrep.info, Node: Examples, Next: Bugs, Prev: Invoking, Up: Top
Examples
********
Scan `$MAIL' for messages from Dirty Harry:
mboxgrep -H '^From:.*callahan@homicide\.SFPD\.gov' $MAIL
Re-mail to George messages that mention his name:
mboxgrep --pipe="/usr/lib/sendmail george" --ignore-case george ~/Mail/*
Display all messages in folder `~/Mail/incoming', except those that
appear to originate from AOL:
mboxgrep -v -H '^Received:.*aol\.com' ~/Mail/incoming
Do a case-insensitive scan of `~/Mail/incoming' for messages with
subject "Weekly News" and write them to folder `~/Mail/archive':
mboxgrep -o ~/Mail/archive -H -i '^Subject: Weekly News' ~/Mail/incoming
Count _all_ messages stored in folder `spam', ignoring duplicates:
mboxgrep -nd -c . spam

File: mboxgrep.info, Node: Bugs, Next: To Vicky, Prev: Examples, Up: Top
Detecting Vermin
****************
Shortly, if `mboxgrep' crashes and/or works differently than
described in this manual, you've found a bug.
Please report bugs to <dspiljar@world.std.com>. Instructions how to
reproduce the bug or output from a debugger would be highly
appreciated. Don't, however, send any coredumps.

File: mboxgrep.info, Node: To Vicky, Prev: Bugs, Up: Top
Author's Dedication
*******************
`Mboxgrep' is dedicated in loving memory of Vicky, my cat who died
of tumor on Sep 12, 2002.
You haven't been long with us, but you gave us a lot of joy and all
your big heart that stopped ticking too early. I will never forget you.
Sleep well, little friend.

Tag Table:
Node: Top197
Node: Introduction598
Node: Invoking1469
Node: Miscellaneous1830
Node: File locking2115
Node: Regexp selection2756
Node: Output control3307
Node: Search scope selection4300
Node: Mailbox type selection4541
Node: Examples4862
Node: Bugs5681
Node: To Vicky6089

End Tag Table

279
doc/mboxgrep.texi Normal file
View File

@@ -0,0 +1,279 @@
\input texinfo @c -*-texinfo-*-
@c $Id: mboxgrep.texi,v 1.19 2003/08/24 19:51:14 dspiljar Exp $
@setfilename mboxgrep.info
@settitle Grep through mailboxes
@finalout
@setchapternewpage odd
@set EDITION 0.7
@set VERSION 0.7.9
@set UPDATED 24 Aug 2003
@dircategory Mail
@direntry
* mboxgrep: (mboxgrep). A mail folder scanning utility.
@end direntry
@node Top, , , (dir)
@ifinfo
This file documents @code{mboxgrep} (version @value{VERSION}), a
mailbox scanning utility.
Copyright (C) 2000, 2001, 2002, 2003 Daniel Spiljar
@end ifinfo
@menu
* Introduction:: A short preface.
* Invoking:: Command-line arguments.
* Examples:: A few examples of usage.
* Bugs:: What to do with bugs and similar vermin.
* To Vicky:: Author's dedication.
@end menu
@node Introduction, Invoking, , Top
@chapter Introduction
@cindex introduction
@cindex preface
@code{mboxgrep} is a small, non-interactive utility that scans mail folders
for messages matching regular expressions.
It supports basic and extended POSIX regular expressions. @code{Perl}-style
regular expressions are supported as well, if @code{mboxgrep} is linked with
PCRE library.
Found messages can be either displayed on standard output, counted, deleted,
piped to a specified command, or copied to another mailbox.
It can read and write a variety of folder formats:
@itemize @bullet
@item
mbox folders, either plain or compressed
@item
MH folders
@item nnml and nnmh folders used by Gnus
@item @code{qmail}-style maildirs
@end itemize
Additionally, it can read mbox folders or output from another @code{mboxgrep}
process from standard input. It does so if a single dash (-) is given
as a file name.
@node Invoking, Examples, Introduction, Top
@chapter Command-Line Arguments
@cindex arguments
The syntax of @code{mboxgrep} invocation is:
@example
mboxgrep [OPTIONS] PATTERN [MAILBOX]
@end example
@menu
* Miscellaneous::
* File locking::
* Regexp selection::
* Output control::
* Search scope selection::
* Mailbox type selection::
@end menu
@node Miscellaneous, File locking, , Invoking
@table @samp
@item --help
@itemx -h
Display a brief help screen and exit.
@item --version
@itemx -V
Display program version and copyright information and exit.
@item --recursive
@itemx -r
Descend into directories recursively.
@end table
@node File locking, Regexp selection, Miscellaneous, Invoking
When accessing mbox folders, @code{mboxgrep} puts a shared lock on
files by default. Note that mbox folders normally should not be accessed
without locking.
@table @samp
@item --file-lock=METHOD
@itemx -l METHOD
Specify file locking METHOD. @code{mboxgrep} supports @code{flock} and
@code{fcntl} file locking. However, one of these methods may be
unimplemented on your operating system and thus not available in
@code{mboxgrep} at run time. To disable file locking, specify @code{none}.
@item --no-file-lock
@itemx -nl
Do not attempt to lock mbox folder files.
@end table
@node Regexp selection, Output control, File locking, Invoking
@table @samp
@item --extended-regexp
@itemx -E
PATTERN is an extended regular expression.
@item --basic-regexp
@itemx -G
PATTERN is a basic regular expression.
@item --perl-regexp
@itemx -P
PATTERN is a Perl regular expression.
@item --regexp=PATTERN
@itemx -e PATTERN
Use PATTERN as a regular expression.
@item --ignore-case
@itemx -i
Perform case-insensitive search.
@item --invert-match
@itemx -v
Invert the sense of matching, i.e. select only non-matching messages.
@end table
@node Output control, Search scope selection, Regexp selection, Invoking
By default, @code{mboxgrep} writes found messages to standard output.
The options below change such behavior.
@table @samp
@item --count
@itemx -c
Suppress normal output and print the count of matching (or non-matching,
if used with the @code{-v} option) messages.
@item --delete
@itemx -d
Suppress normal output and delete selected messages.
Use with extreme caution.
@item --no-duplicates
@itemx -nd
Ignore duplicate messages.
@item --output=FOLDER
@itemx -o FOLDER
Suppress normal output and write messages to destination folder FOLDER
instead.
Note that @code{mboxgrep} assumes the output folder is of the same format
as the input folder. Currently there is no possibility to convert folders.
@item --pipe=COMMAND
@itemx -p COMMAND
Suppress normal output and pipe each selected message to a separate
instance of COMMAND.
@item --no-messages
@itemx -s
Suppress error messages.
@end table
@node Search scope selection, Mailbox type selection, Output control, Invoking
@table @samp
@item --headers
@itemx -H
Match PATTERN against message headers.
@item --body
@itemx -B
Match PATTERN against message body.
@end table
@node Mailbox type selection, , Search scope selection, Invoking
@table @samp
@item --mailbox-format=FORMAT
@itemx -m FORMAT
Specify mailbox FORMAT. Supported formats are @code{mbox} (default),
@code{zmbox} (gzip compressed mbox), @code{bz2mbox} (bzip2 compressed
mbox) @code{mh}, @code{nnml}, @code{nnmh}, and @code{maildir}.
@end table
@node Examples, Bugs, Invoking, Top
@chapter Examples
@cindex example
Scan @env{$MAIL} for messages from Dirty Harry:
@example
mboxgrep -H '^From:.*callahan@@homicide\.SFPD\.gov' $MAIL
@end example
Re-mail to George messages that mention his name:
@example
mboxgrep --pipe="/usr/lib/sendmail george" --ignore-case george ~/Mail/*
@end example
Display all messages in folder @file{~/Mail/incoming}, except those that
appear to originate from AOL:
@example
mboxgrep -v -H '^Received:.*aol\.com' ~/Mail/incoming
@end example
Do a case-insensitive scan of @file{~/Mail/incoming} for messages with subject
``Weekly News'' and write them to folder @file{~/Mail/archive}:
@example
mboxgrep -o ~/Mail/archive -H -i '^Subject: Weekly News' ~/Mail/incoming
@end example
Count @emph{all} messages stored in folder @file{spam}, ignoring duplicates:
@example
mboxgrep -nd -c . spam
@end example
@node Bugs, To Vicky, Examples, Top
@chapter Detecting Vermin
@cindex bug, insect, vermin, bugreport
Shortly, if @code{mboxgrep} crashes and/or works differently than described
in this manual, you've found a bug.
Please report bugs to @email{dspiljar@@world.std.com}.
Instructions how to reproduce the bug or output from a debugger would be
highly appreciated. Don't, however, send any coredumps.
@node To Vicky, , Bugs, Top
@chapter Author's Dedication
@cindex vicky, cat, memory, love
@code{Mboxgrep} is dedicated in loving memory of Vicky, my cat who died
of tumor on Sep 12, 2002.
You haven't been long with us, but you gave us a lot of joy and all
your big heart that stopped ticking too early. I will never forget
you. Sleep well, little friend.
@bye @c cruel world