if (@{$u->{'ssierrs'}}) {
print "$u->{'URL'}\n", '-' x 50, "\n" ;
printf "Total %s SSI Errors:\n", $#{$u->{'ssierrs'}}+1 ;
foreach my $i (0..$#{$u->{'ssierrs'}}) {
printf " %s) ", $i+1 ;
my($tab)= ' ' x (4+length($i+1)) ;
my($tab2) ;
foreach my $level (@{$u->{'ssierrs'}[$i]}) {
print "${tab2}file: $level->{'path'}\n" ;
print "${tab}in tag: $level->{'tag'}\n" ;
print "${tab}error: $level->{'errmsg'}\n"
if $level->{'errmsg'} ;
$tab.= ' ' ;
$tab2= $tab ;
}
}
print "\n\n" ;
}
}
}
unless ($has_statuserrs or $has_ssierrs) {
print <<EOH ;
======================================================================
<< NO ERRORS FOUND >>
EOH
}
print '=' x 70, "\n" ;
} # &make_verbose_report()
# Generate a one-line-per-URL report
sub make_short_report {
my($numurls)= scalar keys %url ;
print "Total $numurls URLs checked\n" ;
URL: foreach my $URL (sort keys %url) {
next if @INCLUDE_STATUS &&
!grep($url{$URL}{'status'}=~ /^$_/, @INCLUDE_STATUS) ;
next if grep($url{$URL}{'status'}=~ /^$_/, @EXCLUDE_STATUS) ;
print "$url{$URL}{'URL'}\t$url{$URL}{'status'}\n" ;
} # URL
}
# Print a summary of usage and exit
sub usage {
print <<EOF ;
Checklinks $CL_VERSION
To recursively check all HTML links on the local site, enter:
$0 <options> [ start-file | start-URL ] ...
Options include:
-v Generate full (verbose) report, including full
referral information and detailed SSI error
reporting.
-I <include-pattern> Only check URLs matching <include-pattern>.
-X <exclude-pattern> Don't check URLs matching <exclude-pattern>.
-i <include-status> Only report URLs whose response code starts with
the pattern <include-status>.
-x <exclude-status> Don't report URLs whose response code starts with
the pattern <exclude-status>. Default is to
exclude "200" responses only (i.e. "-x 200").
-d <max-depth> Traverse links no deeper than <max-depth>.
-f "File mode"-- only read files from the filesystem;
do not go through the HTTP server at all. This
will skip all URLs that point to CGI scripts.
-h "HTTP mode"-- use HTTP to check ALL URLs, even
if they could be read from the filesystem.
Incompatible with "-f" option.
-c <config-file> Read appropriate configuration parameters from
<config-file>, typically srm.conf. Use '-' to
read from STDIN. If a directory is named, use
"srm.conf" in that directory.
-q Print current configuration parameters.
-? Print this help message.
-- End command-line option processing.
Don't stack options like "-vf"; use "-v -f" instead.
For -I, -X, -i, and -x:
Values are interpreted as Perl 5 regular expressions.
Use multiple options to build a list (e.g. "-I include1 -I include2").
Use a value of '' to clear a list (e.g. -x '' means "report all responses",
"-x '' -x 401" means "report all but 401 responses").
As a special case, an empty -I or -i list implies no include-restrictions.
If an item is in both the include and exclude list, it is excluded.
Note that -I and -X restrict which URLs are traversed into, so they may
prune large areas of your Web structure.
EOF
=19= |