diff options
| author | fukachan <fukachan> | 2003-10-29 14:52:29 +0000 |
|---|---|---|
| committer | fukachan <fukachan> | 2003-10-29 14:52:29 +0000 |
| commit | 208e5be9d3778864604ede272d25b9e8716dce06 (patch) | |
| tree | 7fdc4dd7a6033e0e369aec41889eab236ef5ee10 /regress/variable/diff.pl | |
| parent | a4be7e05be0e499e5ff6f5646841b79be050bf21 (diff) | |
| download | fml8-208e5be9d3778864604ede272d25b9e8716dce06.tar.gz fml8-208e5be9d3778864604ede272d25b9e8716dce06.tar.bz2 fml8-208e5be9d3778864604ede272d25b9e8716dce06.zip | |
check: run variable/diff.pl to check etc/src/ consistency.
Diffstat (limited to 'regress/variable/diff.pl')
| -rwxr-xr-x | regress/variable/diff.pl | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/regress/variable/diff.pl b/regress/variable/diff.pl new file mode 100755 index 00000000..ebf49f00 --- /dev/null +++ b/regress/variable/diff.pl @@ -0,0 +1,75 @@ +#!/usr/bin/env perl +# +# $FML$ +# + +use strict; +use Carp; + +my $p = {}; + +for my $lang (qw(ja en)) { + $p->{ $lang } = read_cf_in_dir($lang, "etc/src/config.cf.$lang"); +} + +var_compare("ja", "en", $p->{ ja }, $p->{ en } ); +var_compare("en", "ja", $p->{ en }, $p->{ ja } ); + +exit 0; + + +sub read_cf_in_dir +{ + my ($lang, $dir) = @_; + my $hash = {}; + + use DirHandle; + my $dh = new DirHandle $dir; + if (defined $dh) { + my $x; + + ENTRY: + while ($x = $dh->read()) { + next ENTRY if $x =~ /^\./; + next ENTRY if $x =~ /^CVS/; + next ENTRY if $x !~ /\.cf$/; + + use File::Spec; + my $f = File::Spec->catfile($dir, $x); + read_cf($hash, $f); + } + } + + return $hash; +} + + +sub read_cf +{ + my ($x, $f) = @_; + + use FileHandle; + my $fh = new FileHandle $f; + if (defined $fh) { + my $buf; + + while ($buf = <$fh>) { + if ($buf =~ /^([\w\d_]+).*=/) { + $x->{ $1 } = 1; + } + } + $fh->close(); + } +} + + +sub var_compare +{ + my ($tablename_x, $tablename_y, $x, $y) = @_; + + for my $k (keys %$x) { + unless ($y->{ $k }) { + printf "%-5s %s\n", $tablename_y, "no $k"; + } + } +} |
