This is ftpgrab v0.1.5
Author: Chris Evans, <scarybeasts@gmail.com>, who is at pains to point out
that this 10 year old code is not indicative of the quality of my more recent
work :)

ftpgrab is distributed under the GPLv2 license.

What does ftpgrab do
====================

ftpgrab is a utility for maintaining FTP mirrors. In fact not unlike the
"Mirror" perl program. However ftpgrab is oriented towards the smaller
site which doesn't have the resources to mirror entire version trees of
software.

The primary "plus point" of ftpgrab is that it can base download decisions
by parsing version numbers out of filenames. For example, ftpgrab will
recognize that the file "linux-2.2.2.tar.gz" is newer than
"linux-2.2.1.tar.gz" based on the version string. It will then download
the new version and delete the old one when it is done, thus saving you
mirroring 10's of kernel versions all at >10Mb each.

Usage
=====

To use ftpgrab, see the "ftpgrabrc" example file that comes with this
tarball. Customize the file as needed. When done simply run the ftpgrab
program whilst in the directory containing the "ftpgrabrc" file you want
parsed.

ftpgrab will parse the file, iterate across all download rules once, then
exit. Hence if you want to run ftpgrab in a daemon like mode, do something
like

while true; do ./ftpgrab; sleep 12h; done

In a future version this will not be neccessary (ftpgrab will gain a
daemon-like mode).

Problems?
=========

If you have any problems it is likely to be my fault for lack of
documentation. However, check out "fglog.out" to see if any useful
messages crop up in there. If you are still stuck drop me a note (my
e-mail is at the top of this README), and I will try and help you. There
is every possibility you will hit bugs.

Limitations
===========

- HTTP protocol not yet supported. Will be in a future release.
- Needs recursive fetch options
- Needs version parsing in directory components too
- See TODO
- Only tested against a small amount of FTP servers

To those who say "why bother"
=============================

Yeah I know... Mirror does a very similar thing. But I felt like writing
my own tool that did exactly what we needed ;-)

Cheers
Chris
