distlinks -- check URL links, with database cache
distlinks [--options] filename-or-dirname...
Distlinks checks URLs found in files or a directory tree of files. An SQLite-3 database avoids rechecking links between multiple program runs. It's a bit rough but good for checking everything in a software distribution or similar.
Various file types are recognised and read appropriately to extract text parts to find URLs.
Image::ExifTool, so the text parts of PNG, JPEG, etc.
URLs are distilled from text with free-form matching so they can be in plain text, program code, etc. The following specific forms are recognised,
<URL:http://foo.com>as sometimes recommended for mail messages etc.
`http://foo.com'per Emacs docstrings.
foo.com/index.htmltaken to be
href="foo.html", interpreted relative to a
<base>or the file itself.
$FOOin URLs, taken to be program code etc.
The command line options are
Print some diagnostics about what's being done. With --verbose=2 or --verbose=3 print some technical details too. Eg.
Print the distlinks program version number. With
--verbose=2 also print version numbers of some modules used.
Newsgroup references like "news:some.group.name" are checked by asking the news server whether the group exists. The default server ends is per
Net::NNTP, which means an
NEWSHOST environment variable, or a
Net::Config setup. For convenience
distlinks tries "localhost" if none of those are set.
Rsync URLs like
rsync://hostname/module/path/foo.txt are checked with
LWP::Protocol::rsync if you have such a module, or otherwise a builtin protocol module which runs the
rsync program and does enough for distlinks.
News server host name or IP number.
Temporary directory for untarring archives etc, per
SQLite-3 database of information kept about checked URLs.
Net::Config configuration, for news server.
A .tar or similar archive is extracted into a directory under /tmp so that actual files can be reported on, but those temporary directories are never deleted.
Copyright 2009, 2010 Kevin Ryde
Distlinks 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 3, or (at your option) any later version.
Distlinks 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 Distlinks. If not, see http://www.gnu.org/licenses/.