summaryrefslogtreecommitdiff
path: root/share/tools/convert2utf8
diff options
context:
space:
mode:
authorWarren Block <wblock@FreeBSD.org>2017-09-09 13:35:17 +0000
committerWarren Block <wblock@FreeBSD.org>2017-09-09 13:35:17 +0000
commit90c78f7750245abd897d9f326763ec0579db9277 (patch)
tree9d50d6c1c0c1fd8e724971d60c4a4d01240341dd /share/tools/convert2utf8
parent2e832d584998c455c7afa30f42cf98fdc7330186 (diff)
Exclude all files in htdocs/releases, and better check and sanitize the
exclude path used.
Notes
svn path=/head/; revision=50814
Diffstat (limited to 'share/tools/convert2utf8')
-rwxr-xr-xshare/tools/convert2utf8/convert2utf827
1 files changed, 15 insertions, 12 deletions
diff --git a/share/tools/convert2utf8/convert2utf8 b/share/tools/convert2utf8/convert2utf8
index aa340d6078..2ed4f7a91a 100755
--- a/share/tools/convert2utf8/convert2utf8
+++ b/share/tools/convert2utf8/convert2utf8
@@ -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);