#!/usr/bin/perl -w
use lib "./lib";
use IO::File;
use YAML::Syck qw(LoadFile DumpFile);
use Locale::Codes::Constants;
use Locale::Codes::Country_Retired;
use Locale::Codes::Language_Retired;
use Locale::Codes::Currency_Retired;
use Locale::Codes::Script_Retired;
use Locale::Codes::LangExt_Retired;
use Locale::Codes::LangVar_Retired;
############################################################################
our %mod_list = qw(country Country
currency Currency
langext LangExt
langvar LangVar
language Language
script Script
);
our $curr = "internal/curr.yaml";
our $prev = "internal/prev.yaml";
our %curr = %{ LoadFile($curr) };
our %prev = %{ LoadFile($prev) };
our $mod_dir = "lib/Locale/Codes";
############################################################################
############################################################################
foreach my $type (keys %mod_list) {
update_retired($type);
write_module($type);
}
############################################################################
# UPDATE_MODULE
############################################################################
sub update_retired {
my($type) = @_;
my $module = $mod_list{$type};
foreach my $codeset (keys %{ $ALL_CODESETS{$type}{'codesets'} }) {
foreach my $code (keys %{ $prev{$type}{$codeset}{'code'} }) {
next if (exists $curr{$type}{$codeset}{'code'}{$code});
my $name = $prev{$type}{$codeset}{'code'}{$code};
$Locale::Codes::Retired{$type}{$codeset}{'code'}{$code} = $name;
}
foreach my $lc (keys %{ $prev{$type}{$codeset}{'name'} }) {
next if (exists $curr{$type}{$codeset}{'name'}{$lc});
my($code,$name) = @{ $prev{$type}{$codeset}{'name'}{$lc} };
$Locale::Codes::Retired{$type}{$codeset}{'name'}{$lc} =
[$code,$name];
}
}
}
############################################################################
# WRITE_MODULE
############################################################################
sub write_module {
my($type) = @_;
my $module = $mod_list{$type};
my $file = "$mod_dir/${module}_Retired.pm";
my $out = new IO::File;
$out->open(">$file");
my $timestamp = `date`;
chomp($timestamp);
print $out "package #
Locale::Codes::${module}_Retired;
# This file was automatically generated. Any changes to this file will
# be lost the next time 'deprecate_codes' is run.
# Generated on: $timestamp
use strict;
require 5.006;
use warnings;
use utf8;
our(\$VERSION);
\$VERSION='3.57';
";
foreach my $codeset (sort keys %{ $ALL_CODESETS{$type}{'codesets'} }) {
print $out "\$Locale::Codes::Retired{'$type'}{'$codeset'}{'code'} = {\n";
foreach my $code (sort keys %{ $Locale::Codes::Retired{$type}{$codeset}{'code'} }) {
my $name = $Locale::Codes::Retired{$type}{$codeset}{'code'}{$code};
print $out " q($code) => q($name),\n";
}
print $out "};\n\n";
}
foreach my $codeset (sort keys %{ $ALL_CODESETS{$type}{'codesets'} }) {
print $out "\$Locale::Codes::Retired{'$type'}{'$codeset'}{'name'} = {\n";
foreach my $lc (sort keys %{ $Locale::Codes::Retired{$type}{$codeset}{'name'} }) {
my ($code,$name) =
@{ $Locale::Codes::Retired{$type}{$codeset}{'name'}{$lc} };
print $out " q($lc) => [ q($code), q($name) ],\n";
}
print $out "};\n\n";
}
print $out "
1;
";
$out->close();
}
1;
# Local Variables:
# mode: cperl
# indent-tabs-mode: nil
# cperl-indent-level: 3
# cperl-continued-statement-offset: 2
# cperl-continued-brace-offset: 0
# cperl-brace-offset: 0
# cperl-brace-imaginary-offset: 0
# cperl-label-offset: 0
# End: