#!/usr/bin/perl -w

use lib "./lib";
use YAML::Syck qw(DumpFile);
use Locale::Codes::Constants;
use Locale::Codes;
use Locale::Codes::Country;
use Locale::Codes::Language;
use Locale::Codes::Currency;
use Locale::Codes::Script;
use Locale::Codes::LangExt;
use Locale::Codes::LangVar;

my @type = qw(country
              currency
              langext
              langvar
              language
              script
            );

$yaml = "internal/curr.yaml";
$prev = "internal/prev.yaml";

if (-f $yaml) {
   rename $yaml,$prev;
}

my %hash;

foreach my $type (@type) {
   foreach my $codeset (keys %{ $Locale::Codes::Constants::ALL_CODESETS{$type}{'codesets'} }) {
      my @codes = Locale::Codes::_all_codes($type,$codeset);
      foreach my $code (@codes) {
         my $name = Locale::Codes::_code2name($type,$code,$codeset);
         $hash{$type}{$codeset}{'code'}{$code} = $name;
      }

      my @names = Locale::Codes::_all_names($type,$codeset);
      foreach my $name (@names) {
         my $code = Locale::Codes::_name2code($type,$name,$codeset);
         $hash{$type}{$codeset}{'name'}{lc($name)} = [$code,$name];
      }
   }
}

DumpFile($yaml,\%hash);

# 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:
