Added two tools to check the contents of /usr/share/misc/iso* with

the data from the sources.

PR:		misc/127430 and misc/misc/127428
This commit is contained in:
edwin 2009-05-23 09:01:30 +00:00
parent a46bca667e
commit f3f589b8b2
3 changed files with 264 additions and 0 deletions

View File

@ -32,6 +32,8 @@ hcomp Compress header files by removing comments and whitespace.
html-mv Rename HTML generated filenames to human readable filenames.
ifinfo Uses the interface MIB to print out all the information
an interface exports in an ugly form.
iso Tool to compare the iso3166 and iso639 files in
/usr/share/misc with the data from the master sites.
iwi Tools specific to the Intel PRO/Wireless 2200BG/2225BG/2915ABG
support.
kdrv KernelDriver; add/list/remove third-party kernel driver

164
tools/tools/iso/check-iso3166.pl Executable file
View File

@ -0,0 +1,164 @@
#!/usr/bin/perl -w
#
# $FreeBSD$
#
# This script compares the file iso3166 (from head/share/misc) with the files
# list-en1-semic-2.txt (from
# http://www.iso.org/iso/list-en1-semic-2.txt) and iso3166-countrycodes.txt
# (from ftp://ftp.ripe.net/) to see if there any differences.
#
# Created by Edwin Groothuis <edwin@FreeBSD.org> for the FreeBSD project.
#
use strict;
use Data::Dumper;
my %old = ();
{
open(FIN, "iso3166") or die "Cannot open iso3166 (should be in head/share/misc)";
my @lines = <FIN>;
close(FIN);
chomp(@lines);
foreach my $l (@lines) {
next if ($l =~ /^#/);
next if ($l eq "");
die "Bad line: $l\n"
if ($l !~ /^([A-Z\-]*)[ \t]+([A-Z\-]+)[ \t]+(\d+)[ \t]+(.*)/);
my $two = $1;
my $three = $2;
my $number = $3;
my $name = $4;
$old{$two}{two} = $two;
$old{$two}{three} = $three;
$old{$two}{number} = $number;
$old{$two}{name} = $name;
}
}
my %new1 = ();
{
open(FIN, "iso3166-countrycodes.txt") or die "Cannot open iso3166-countrycodes.txt, which can be retrieved from ftp://ftp.ripe.net/";
my @lines = <FIN>;
close(FIN);
chomp(@lines);
my $noticed = 0;
foreach my $l (@lines) {
if ($l =~ /\-\-\-\-\-\-\-/) {
$noticed = 1;
next;
}
next if (!$noticed);
next if ($l eq "");
die "Invalid line: $l\n"
if ($l !~ /^(.+?)[\t ][\t ]+([A-Z]{2})[\t ]+([A-Z]{3})[\t ]+(\d+)[\t ]*$/);
my $two = $2;
my $three = $3;
my $number = $4;
my $name = $1;
$new1{$two}{two} = $two;
$new1{$two}{three} = $three;
$new1{$two}{number} = $number;
$new1{$two}{name} = $name;
}
}
my %new2 = ();
{
open(FIN, "list-en1-semic-2.txt") or die "Cannot open list-en1-semic-2.txt, which can be retrieved from http://www.iso.org/iso/list-en1-semic-2.txt";
my @lines = <FIN>;
close(FIN);
chomp(@lines);
my $noticed = 0;
foreach my $l (@lines) {
$l =~ s/\x0d//g;
if (!$noticed) { # skip the first line
$noticed = 1;
next;
}
next if ($l eq "");
my @a = split(/;/, $l);
die "Invalid line: $l\n" if ($#a != 1);
my $two = $a[1];
my $name = $a[0];
$new2{$two}{two} = $two;
$new2{$two}{name} = $name;
}
}
{
my $c = 0;
foreach my $two (sort(keys(%old))) {
if (!defined $new1{$two}) {
print "In old but not new1: $old{$two}{two}\t$old{$two}{three}\t$old{$two}{number}\t$old{$two}{name}\n";
$c++;
}
if (!defined $new2{$two}) {
print "In old but not new2: $old{$two}{two}\t$old{$two}{name}\n";
$c++;
}
}
print "Found $c issues\n";
}
{
my $c = 0;
foreach my $two (sort(keys(%new1))) {
next if (defined $old{$two});
print "In new1 but not old: $new1{$two}{two}\t$new1{$two}{three}\t$new1{$two}{number}\t$new1{$two}{name}\n";
$c++;
}
print "Found $c issues\n";
}
{
my $c = 0;
foreach my $two (sort(keys(%new2))) {
next if (defined $old{$two});
print "In new2 but not old: $new2{$two}{two}\t$new2{$two}{name}\n";
$c++;
}
print "Found $c issues\n";
}
{
my $c = 0;
foreach my $two (sort(keys(%old))) {
if (defined $new1{$two}) {
if ($old{$two}{two} ne $new1{$two}{two} ||
$old{$two}{three} ne $new1{$two}{three} ||
$old{$two}{number} ne $new1{$two}{number} ||
lc($old{$two}{name}) ne lc($new1{$two}{name})) {
print "In old : $old{$two}{two}\t$old{$two}{three}\t$old{$two}{number}\t$old{$two}{name}\n";
print "In new1: $new1{$two}{two}\t$new1{$two}{three}\t$new1{$two}{number}\t$new1{$two}{name}\n";
$c++;
}
}
}
print "Found $c issues\n";
}
{
my $c = 0;
foreach my $two (sort(keys(%old))) {
if (defined $new2{$two}) {
if ($old{$two}{two} ne $new2{$two}{two} ||
lc($old{$two}{name}) ne lc($new2{$two}{name})) {
print "In old : $old{$two}{two}\t$old{$two}{name}\n";
print "In new2: $new2{$two}{two}\t$new2{$two}{name}\n";
$c++;
}
}
}
print "Found $c issues\n";
}

98
tools/tools/iso/check-iso639.pl Executable file
View File

@ -0,0 +1,98 @@
#!/usr/bin/perl -w
#
# $FreeBSD$
#
# This script compares the file iso639 (from head/share/misc) with the file
# ISO-639-2_8859-1.txt (from
# http://www.loc.gov/standards/iso639-2/ISO-639-2_utf-8.txt) to see if there
# any differences.
#
# Created by Edwin Groothuis <edwin@FreeBSD.org> for the FreeBSD project.
#
use strict;
use Data::Dumper;
my %old = ();
{
open(FIN, "iso639") or die "Cannot open iso639 (should be in head/share/misc)";
my @lines = <FIN>;
close(FIN);
chomp(@lines);
foreach my $l (@lines) {
next if ($l =~ /^#/);
next if ($l eq "");
die "Bad line: $l\n"
if ($l !~ /^([a-z\-]*)[ \t]+([a-z\-]+)[ \t]+([a-z\-]+)[ \t]+(.*)/);
my $a2 = $1;
my $bib = $2;
my $term = $3;
my $name = $4;
$old{$bib}{a2} = $a2;
$old{$bib}{bib} = $bib;
$old{$bib}{term} = $term;
$old{$bib}{name} = $name;
}
}
my %new = ();
{
open(FIN, "ISO-639-2_utf-8.txt") or die "Cannot open ISO-639-2_utf-8.txt, which can be retrieved from http://www.loc.gov/standards/iso639-2/ISO-639-2_utf-8.txt";
my @lines = <FIN>;
close(FIN);
chomp(@lines);
foreach my $l (@lines) {
my @a = split(/\|/, $l);
my $a2 = $a[2];
my $bib = $a[0];
my $term = $a[1];
my $name = $a[3];
$term = $bib if ($term eq "");
$new{$bib}{a2} = $a2;
$new{$bib}{bib} = $bib;
$new{$bib}{term} = $term;
$new{$bib}{name} = $name;
}
}
{
my $c = 0;
foreach my $bib (sort(keys(%old))) {
next if (defined $new{$bib});
print "In old but not new: $old{$bib}{a2}\t$old{$bib}{bib}\t$old{$bib}{term}\t$old{$bib}{name}\n";
$c++;
}
print "Found $c issues\n";
}
{
my $c = 0;
foreach my $bib (sort(keys(%new))) {
next if (defined $old{$bib});
print "In new but not old: $new{$bib}{a2}\t$new{$bib}{bib}\t$new{$bib}{term}\t$new{$bib}{name}\n";
$c++;
}
print "Found $c issues\n";
}
{
my $c = 0;
foreach my $bib (sort(keys(%old))) {
next if (!defined $new{$bib});
next if ($old{$bib}{a2} eq $new{$bib}{a2} &&
$old{$bib}{bib} eq $new{$bib}{bib} &&
$old{$bib}{term} eq $new{$bib}{term} &&
$old{$bib}{name} eq $new{$bib}{name});
print "In old: $old{$bib}{a2}\t$old{$bib}{bib}\t$old{$bib}{term}\t$old{$bib}{name}\n";
print "In new: $new{$bib}{a2}\t$new{$bib}{bib}\t$new{$bib}{term}\t$new{$bib}{name}\n";
$c++;
}
print "Found $c issues\n";
}