Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 9 Sep 2017 13:35:17 +0000 (UTC)
From:      Warren Block <wblock@FreeBSD.org>
To:        doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org
Subject:   svn commit: r50814 - head/share/tools/convert2utf8
Message-ID:  <201709091335.v89DZH6g035983@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: wblock
Date: Sat Sep  9 13:35:17 2017
New Revision: 50814
URL: https://svnweb.freebsd.org/changeset/doc/50814

Log:
  Exclude all files in htdocs/releases, and better check and sanitize the
  exclude path used.

Modified:
  head/share/tools/convert2utf8/convert2utf8

Modified: head/share/tools/convert2utf8/convert2utf8
==============================================================================
--- head/share/tools/convert2utf8/convert2utf8	Sat Sep  9 11:02:58 2017	(r50813)
+++ head/share/tools/convert2utf8/convert2utf8	Sat Sep  9 13:35:17 2017	(r50814)
@@ -48,7 +48,7 @@ my $svn   = '/usr/local/bin/svn';
 my $xargs = '/usr/bin/xargs';
 
 my $docdir = '/usr/doc/en_US.ISO8859-1';
-my $exclpath = 'htdocs/releases/*/*.html';
+my $exclpath = 'htdocs/releases/*/*';
 my $verbose = 0;
 
 sub usage {
@@ -64,8 +64,9 @@ sub usage {
 	print "encoding directories like en_US.ISO8859-1 to UTF-8.  The\n";
 	print "documentation directory must be a Subversion checkout.  After\n";
 	print "files are converted, the directory is renamed to *.UTF-8.\n\n";
-	print "The default exclude path prevents conversion of statically-\n";
-	print "generated HTML files in htdocs/releases/*/*.html.\n";
+	print "The default exclude path prevents conversion of all files\n";
+	print "htdocs/releases/*/*.  These files are typically statically-\n";
+	print "generated historical files.\n";
 	exit 0;
 }
 
@@ -94,10 +95,17 @@ sub make_clean {
 }
 
 sub find_files {
-	my ($dn) = @_;
+	my ($dn,$exclpath) = @_;
+
+	my $fullexclpath = "$dn/$exclpath";
+	# sanitize exclude path, find is very picky about matches
+	# convert multiple slashes to single
+	$fullexclpath =~ s%/{2,}%/%;
+	die "** exclude path '$exclpath' must be relative (under '$docdir')\n" if $exclpath =~ m%^/%;
+
 	print "finding files to be converted in '$dn'\n" if $verbose;
-	print "excluding files matching \"$dn$exclpath/*\"\n" if $verbose;
-	return map(/^(.*):/, `$find $dn -not -path \"$dn$exclpath\" -type f -print0 | $xargs -0 $file | $grep 'XML\\|SGML\\|BSD'`);
+	print "excluding files matching \"$fullexclpath/*\"\n" if $verbose;
+	return map(/^(.*):/, `$find $dn -not -path \"$fullexclpath\" -type f -print0 | $xargs -0 $file | $grep 'XML\\|SGML\\|BSD'`);
 }
 
 sub convert_file {
@@ -149,11 +157,6 @@ sub main {
 	$docdir = $opt_d if $opt_d;
 	$exclpath = $opt_e if $opt_e;
 
-	# sanitize exclude path, find is very picky about matches
-	# convert multiple slashes to single
-	$exclpath =~ s%/{2,}%/%;
-	die "** exclude path '$exclpath' must be relative (under '$docdir')\n" if $exclpath =~ m%^/%;
-
 	my $basedir = basename($docdir);
 	die "** '$docdir' does not have a standard ISO xy_AB directory name\n" unless $basedir =~ /^([a-z]{2}_[A-Z]{1,3})\./;
 	my $isolang = $1;
@@ -179,7 +182,7 @@ sub main {
 
 	make_clean($docdir);
 
-	my @files = find_files($docdir);
+	my @files = find_files($docdir, $exclpath);
 
 	for my $f (@files) {
 		convert_file($f, $basedir, $isolang, $fromcode, $tocode);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201709091335.v89DZH6g035983>