Files
percona-toolkit/util/check-spelling

46 lines
1.1 KiB
Perl
Executable File

#!/usr/bin/env perl
# You must run the program from util/.
if ( !(-f 'aspell.en.pws' && -f 'parse-aspell-output') ) {
die "This script must be run from the util/ directory of a branch\n"
}
use strict;
use warnings FATAL => 'all';
use English qw(-no_match_vars);
# These programs should be in your PATH.
my $pod2text = 'pod2text';
my $aspell = 'aspell';
my $tool_file = shift @ARGV;
if ( !$tool_file ) {
die "Usage: $PROGRAM_NAME TOOL\n";
}
my ($tool_name) = $tool_file =~ m{([a-z-]+)$};
if ( !$tool_name ) {
die "Cannot parse tool name from $tool_file";
}
# Temp files.
my $pod_file = "/tmp/$tool_name-pod";
my $bad_words_file = "/tmp/$tool_name-misspelled-words";
# Convert tool's POD to text.
`$pod2text $tool_file > $pod_file`;
# Spell check the text file.
`cat $pod_file | $aspell --pipe --lang en_US --personal ./aspell.en.pws > $bad_words_file`;
# Parse and match the aspell output to the text file.
print "$tool_name:\n\n";
print `./parse-aspell-output $bad_words_file $pod_file`;
print "\n";
# Cleanup.
`rm -rf $pod_file`;
`rm -rf $bad_words_file`;
exit;