W3C home > Mailing lists > Public > www-validator-cvs@w3.org > August 2010

link-checker commit: New command line option (--exclude-docs) for excluding checking links in

From: Mercurial notifier <nobody@w3.org>
Date: Thu, 05 Aug 2010 14:46:55 +0000
To: link-checker updates <www-validator-cvs@w3.org>
Message-Id: <E1Oh1ih-0005XS-BG@blinky.w3.org>
changeset:   38:e736acee742b
user:        ville
date:        Sat Apr 03 09:46:35 2004 +0000
files:       bin/checklink bin/checklink.pod
description:
New command line option (--exclude-docs) for excluding checking links in
documents whose URIs match a regexp; thanks to Michael Ernst.  Also,
some improvements to argument and configuration option checking and error
reporting.


diff -r 2610aef80820 -r e736acee742b bin/checklink
--- a/bin/checklink	Fri Apr 02 06:14:06 2004 +0000
+++ b/bin/checklink	Sat Apr 03 09:46:35 2004 +0000
@@ -5,7 +5,7 @@
 # (c) 1999-2004 World Wide Web Consortium
 # based on Renaud Bruyeron's checklink.pl
 #
-# $Id: checklink,v 3.17 2004-03-31 19:27:36 ville Exp $
+# $Id: checklink,v 3.18 2004-04-03 09:46:35 ville Exp $
 #
 # This program is licensed under the W3C(r) Software License:
 #       http://www.w3.org/Consortium/Legal/copyright-software
@@ -92,7 +92,7 @@
   $PROGRAM       = 'W3C checklink';
   ($AGENT        = $PROGRAM) =~ s/\s+/-/g;
   $VERSION       = '3.9.2';
-  ($CVS_VERSION) = q$Revision: 3.17 $ =~ /(\d+[\d\.]*\.\d+)/;
+  ($CVS_VERSION) = q$Revision: 3.18 $ =~ /(\d+[\d\.]*\.\d+)/;
   $REVISION      = sprintf('version %s [%s] (c) 1999-2004 W3C',
                            $VERSION, $CVS_VERSION);
 
@@ -176,6 +176,7 @@
     User              => undef,
     Password          => undef,
     Base_Location     => '.',
+    Exclude_Docs      => undef,
     Masquerade        => 0,
     Masquerade_From   => '',
     Masquerade_To     => '',
@@ -199,13 +200,23 @@
 # Time stamp
 my $timestamp = &get_timestamp();
 
+&parse_arguments() if $Opts{Command_Line};
+
+# Precompile/error-check regular expressions.
+if (defined($Opts{Exclude_Docs})) {
+  eval { $Opts{Exclude_Docs} = qr/$Opts{Exclude_Docs}/; };
+  &usage(1, "Error in exclude-docs regexp: $@") if $@;
+}
+if (defined($Opts{Trusted})) {
+  eval { $Opts{Trusted} = qr/$Opts{Trusted}/; };
+  &usage(1, "Error in trusted domains regexp: $@") if $@;
+}
+
 if ($Opts{Command_Line}) {
 
   require Text::Wrap;
   Text::Wrap->import('wrap');
 
-  # Parse command line
-  &parse_arguments();
   &usage(1) unless @ARGV;
 
   &ask_password() if ($Opts{User} && !$Opts{Password});
@@ -368,6 +379,7 @@
              'r|recursive'     => sub { $Opts{Depth} = -1
                                           if $Opts{Depth} == 0; },
              'l|location=s'    => \$Opts{Base_Location},
+             'exclude-docs=s', => \$Opts{Exclude_Docs},
              'u|user=s'        => \$Opts{User},
              'p|password=s'    => \$Opts{Password},
              't|timeout=i'     => \$Opts{Timeout},
@@ -406,7 +418,9 @@
 {
   my ($exitval, $msg) = @_;
   $exitval = 0 unless defined($exitval);
-  $msg = $msg ? "$msg\n\n" : '';
+  $msg ||= ''; $msg =~ s/[\r\n]*$/\n\n/;
+
+  die($msg) unless $Opts{Command_Line};
 
   my $langs = defined($Opts{Languages}) ? " (default: $Opts{Languages})" : '';
   my $trust = defined($Opts{Trusted})   ? " (default: $Opts{Trusted})"   : '';
@@ -427,6 +441,8 @@
                               By default, for example for
                               http://www.w3.org/TR/html4/Overview.html
                               it would be http://www.w3.org/TR/html4/
+  --exclude-docs regexp       In recursive mode, do not check links in
+                              documents whose URIs match regexp.
   -n/--noacclanguage          Do not send an Accept-Language header.
   -L/--languages              Languages accepted$langs.
   -q/--quiet                  No output if no errors are found.  Implies -s.
@@ -792,6 +808,8 @@
 
   return undef if ($current eq $rel);     # Relative path not possible?
   return undef if ($rel =~ m|^(\.\.)?/|); # Relative path starts with ../ or /?
+  return undef if (defined($Opts{Exclude_Docs}) &&
+                   $current =~ $Opts{Exclude_Docs});
   return 1;
 }
 
diff -r 2610aef80820 -r e736acee742b bin/checklink.pod
--- a/bin/checklink.pod	Fri Apr 02 06:14:06 2004 +0000
+++ b/bin/checklink.pod	Sat Apr 03 09:46:35 2004 +0000
@@ -1,4 +1,4 @@
-$Id: checklink.pod,v 1.5 2004-03-30 19:04:22 ville Exp $
+$Id: checklink.pod,v 1.6 2004-04-03 09:46:35 ville Exp $
 
 =head1 NAME
 
@@ -63,6 +63,11 @@
 Scope of the documents checked in recursive mode. By default, for
 L<http://www.w3.org/TR/html4/Overview.html> for example, it would be
 L<http://www.w3.org/TR/html4/>.
+
+=item B<--exclude-docs> I<regexp>
+
+In recursive mode, do not check links in documents whose URIs match
+I<regexp>.
 
 =item B<-n, --noacclanguage>
 
Received on Thursday, 5 August 2010 14:47:04 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 15:17:43 UTC