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:
parent
a46bca667e
commit
f3f589b8b2
@ -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
164
tools/tools/iso/check-iso3166.pl
Executable 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
98
tools/tools/iso/check-iso639.pl
Executable 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";
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user