NAME

rfcfind - search an RFC list


SYNOPSIS

Fetch the index file first:

  rfcfind -i

Search the indexes for RFCs releated to avian carriers:

  rfcfind -r 'avian.*carrier'

Fetch just those RFCs:

  rfcfind -r 'avian.*carrier' -f

Read them:

  rfcfind -r 'avian.*carrier' -m

Decide you want 300Mbs of text files and get everything so you don't have to fetch them every time:

  rfcfind -s


IMPORTANT NOTE

This application does things by sometimes wrapping around the following system commands. This means you should be aware of this and that you may want to have them installed ;-)

wget
for -f switch

rsync
for -r switch

more (or your $PAGER if set)
for -m switch

grep =item sed
for -g switch

kfmclient
for -k switch


DESCRIPTION

The rfcfind program searches for RFCs by examining the RFC index.txt file from the RFC repository. By default, this must be placed in ~/docs/rfc/rfcs/ (since this is where mine are, for various reasons, this is where I expect yours to be ;-). You can override this by default using the RFCDIR environment variable or using the -d switch. In that directory you should have:

the rfc-index.txt file
a copy of the rfcs

You can get these files from the http://www.ietf.org/rfc/ directory.


OPTIONS

Configuration Options

-d DIRECTORY
use DIRECTORY as the location where your rfc-index.txt and rfc files are stored.

Search Options

-r REGEXP
Search the titles, etc (but not the RFC text itself) for REGEXP. If you don't understand what a REGEXP is, use something like ``word1.*word2.*word3'' (ie, .* in between words)

-n REGEXP
Search RFC numbers for a number or REGEXP. IE, you can use ``1000'' to get just RFC 1000, or you can use '[1-4]000' to get 1000, 2000, 3000 and 4000.

Action Options

-m
Pass the resulting RFCS to the program specified by the -p flag or your PAGER program (enviorment variable) or ``more'' if not otherwise set. You should set it to less ;-)

-g STRING
Grep the resulting RFCs for a given string. IE:
  rfcfind -n 0822 -g address

Searches the first email RFC for the word ``address''.

-e
Edits the resulting RFCs using gnudoit, an emacs specific edit connection. You must be running emacs with a working gnuserv installation.

-k
Sends the resulting files to a konqueror window if you're a kde user.

IETF RFC Database Synchronization Options

-i
Fetch a new copy of the index file.

-f
For all matching RFCs, fech a copy of the RFC if you don't have a cached copy.

-s
Syncronizes your RFC database using rsync and wget. This gets *all* the RFCs if you don't have them, which currenly takes a bit less that 300Mb of disk space.

Help options

-h
Shows help. May require the Getopt::GUI::Long module and the QWizard module.


AUTHOR

Wes Hardaker <wjhns1@hardakers.net>


LICENSE

Copyright (c) 2004-2005, Wes Hardaker All rights reserved.


Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

*  Redistributions of source code must retain the above copyright notice,
   this list of conditions and the following disclaimer.

*  Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in the
   documentation and/or other materials provided with the distribution.

*  Neither the name of Wes Hardaker nor the names of its contributors may
   be used to endorse or promote products derived from this software
   without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.