svn commit: r50814 - head/share/tools/convert2utf8

Warren Block <[email protected]>
Newsgroups gmane.os.freebsd.devel.cvs.doc
Message-ID <[email protected]>
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);
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-doc-all
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.