]> git.proxmox.com Git - pve-manager.git/blame - configs/country.pl
update shipped appliance info index
[pve-manager.git] / configs / country.pl
CommitLineData
aff192e6
DM
1#!/usr/bin/perl -w
2
aff192e6
DM
3use strict;
4use PVE::Tools;
5
6# see also: http://en.wikipedia.org/wiki/Keyboard_layout
7#
8# country codes from: /usr/share/zoneinfo/iso3166.tab
9# timezones from: /usr/share/zoneinfo/zone.tab
10# keymaps: find /usr/share/keymaps/i386/ -type f -name '*.kmap.gz'
11# x11 layouts: /usr/share/X11/xkb/rules/xorg.lst
12
13my $country = {};
14
15my $line;
16open (TMP, "</usr/share/zoneinfo/iso3166.tab");
17while (defined ($line = <TMP>)) {
18 if ($line =~ m/^([A-Z][A-Z])\s+(.*\S)\s*$/) {
19 $country->{lc($1)} = $2;
20 }
21}
22close (TMP);
23
24# we need mappings for X11, console, and kvm vnc
25
26# LC(-LC)? => [DESC, kvm, console, X11, X11variant]
27my $keymaps = PVE::Tools::kvmkeymaps();
28
29foreach my $km (sort keys %$keymaps) {
30 my ($desc, $kvm, $console, $x11, $x11var) = @{$keymaps->{$km}};
31
32 if ($km =~m/^([a-z][a-z])-([a-z][a-z])$/i) {
33 defined ($country->{$2}) || die "undefined country code '$2'";
34 } else {
35 defined ($country->{$km}) || die "undefined country code '$km'";
36 }
37
38 $x11var = '' if !defined ($x11var);
39 print "map:$km:$desc:$kvm:$console:$x11:$x11var:\n";
40}
41
42my $defmap = {
43 'us' => 'en-us',
44 'be' => 'fr-be',
45 'br' => 'pt-br',
46 'ca' => 'en-us',
47 'dk' => 'dk',
48 'nl' => 'en-us', # most Dutch people us US layout
49 'fi' => 'fi',
50 'fr' => 'fr',
51 'de' => 'de',
52 'at' => 'de',
53 'hu' => 'hu',
54 'is' => 'is',
55 'it' => 'it',
56 'va' => 'it',
57 'jp' => 'jp',
58 'lt' => 'lt',
59 'mk' => 'mk',
60 'no' => 'no',
61 'pl' => 'pl',
62 'pt' => 'pt',
63 'si' => 'si',
64 'es' => 'es',
65 'gi' => 'es',
66 'ch' => 'de-ch',
67 'gb' => 'en-gb',
68 'lu' => 'fr-ch',
69 'li' => 'de-ch',
70};
71
72
73my $mirrors = PVE::Tools::debmirrors();
74foreach my $cc (keys %$mirrors) {
75 die "undefined country code '$cc'" if !defined ($country->{$cc});
76}
77
78foreach my $cc (sort keys %$country) {
79 my $map = $defmap->{$cc} || '';
80 my $mir = $mirrors->{$cc} || '';
81 print "$cc:$country->{$cc}:$map:$mir:\n";
82}