#!/usr/bin/perl
#use strict;
#use warnings;

my %zoneinfo_tab = (
	"MHT+12"	=>	"Pacific/Kwajalein",				# 0 , "(GMT-12:00) Eniwetok,Kwajalein"								},
	"SST+11"	=>	"US/Samoa",					# 1 , "(GMT-11:00) MidwayIsland,Samoa"								},
	"HST+10"	=>	"US/Hawaii",					# 2 , "(GMT-10:00) Hawaii"									},
	"AKST+9"	=>	"US/Alaska", 					# 3 , "(GMT-09:00) Alaska"									},
	"PST+8"		=>	"US/Pacific",					# 4 , "(GMT-08:00) Pacific Time(US &amp; Canada), Tijuana"			},
	"MST+7"		=>	"US/Arizona",					# 5 , "(GMT-07:00) Arizona"											},
	"MST+7"		=>	"US/Mountain",					# 6 , "(GMT-07:00) Mountain Time(US &amp; Canada)"					},
	"CST+6"		=>	"US/Central",					# 7 , "(GMT-06:00) Central Time(US &amp; Canada)"					},
	"CDT+6"		=>	"America/Mexico_City",				# 8 , "(GMT-06:00) Mexico City, Tegucigalpa"						},
	"CST+6"		=>	"Canada/Saskatchewan",				# 9 , "(GMT-06:00) Saskatchewan"									},
	"COT+5"		=>	"America/Bogota",				# 10 , "(GMT-05:00) Bogota, Lima, Quito"							},
	"EST+5"		=>	"US/Eastern",					# 11 , "(GMT-05:00) Eastern Time(US &amp; Canada)"					},
	"EST+5"		=>	"US/East-Indiana",				# 12 , "(GMT-05:00) Indiana(East)"									},
	"AST+4"		=>	"Canada/Atlantic",				# 13 , "(GMT-04:00) Atlantic Time(Canada)"							},
	"VET+4"		=>	"America/Caracas",				# 14 , "(GMT-04:00) Caracas, La Paz"								},
	"CLT+4"		=>	"America/Santiago",				# 15 , "(GMT-04:00) Santiago"									},
	"NST+0330"	=>	"Canada/Newfoundland",				# 16 , "(GMT-03:30) Newfoundland"								},
	"ESAST+3"	=>	"Brazil/East",					# 17 , "(GMT-03:00) Brasilia"										},
	"ART+3"		=>	"America/Argentina/Buenos_Aires",		# 18 , "(GMT-03:00) Buenos Aires, Georgetown"						},
	"MAST+2"	=>	"Atlantic/South_Georgia",			# 19 , "(GMT-02:00) Mid-Atlantic"									},
	"AZOST+1"	=>	"Atlantic/Azores",				# 20 , "(GMT-01:00) Azores, Cape Verde Is."							},
	"GMT0"		=>	"Europe/London",					# 21 , "(GMT) Greenwich Mean Time : Dublin, Lisbon, London"			},
	"CEST-1"	=>	"Europe/Amsterdam",				# 22 , "(GMT+01:00) Amsterdam, Berlin, Rome, Stockholm, Vienna"		},
	"CEST-1"	=>	"Europe/Belgrade",				# 23 , "(GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana"		},
	"CEST-1"	=>	"Europe/Brussels",				# 24 , "(GMT+01:00) Brussels, Copenhagen, Madrid, Paris, Vilnius"	},
	"CEST-1"	=>	"Europe/Sarajevo",				# 25 , "(GMT+01:00) Sarajevo, Skopje, Sofija, Warsaw, Zagreb"		},
	"EEST-2"	=>	"Europe/Athens",				# 26 , "(GMT+02:00) Athens, Istanbul, Minsk"						},
	"EEST-2"	=>	"Europe/Bucharest",				# 27 , "(GMT+02:00) Bucharest"										},
	"EEST-2"	=>	"Egypt",						# 28 , "(GMT+02:00) Cairo"											},
	"CAT-2"		=>	"Africa/Harare",				# 29 , "(GMT+02:00) Harare, Pretoria"								},
	"EEST-2"	=>	"Europe/Helsinki",				# 30 , "(GMT+02:00) Helsinki, Riga, Tallinn"						},
	"IST-2"		=>	"Asia/Tel_Aviv",				# 31 , "(GMT+02:00) Israel"											},
	"ADT-3"		=>	"Asia/Baghdad",					# 32 , "(GMT+03:00) Baghdad, Kuwait, Riyadh"						},
	"MSD-3"		=>	"Europe/Moscow",				# 33 , "(GMT+03:00) Moscow, St. Petersburg, Volgograd"				},
	"EAT-3"		=>	"Africa/Nairobi",				# 34 , "(GMT+03:00) Nairobi"										},
	"IRST-0330"	=>	"Asia/Tehran",					# 35 , "(GMT+03:30) Tehran"											},
	"GST-4"		=>	"Asia/Dubai",					# 36 , "(GMT+04:00) Abu Dhabi, Muscat"								},
	"GEST-4"	=>	"Asia/Tbilisi",					# 37 , "(GMT+04:00) Baku, Tbilisi"									},
	"AFT-0430"	=>	"Asia/Kabul",					# 38 , "(GMT+04:30) Kabul"											},
	"PKT-5"		=>	"Asia/Yekaterinburg",					# 39 , "(GMT+05:00) Eekaterinburg"									},
	"PKT-5"		=>	"Asia/Karachi",					# 40 , "(GMT+05:00) Islamabad, Karachi, Tashkent"					},
	"IST-0530"	=>	"Asia/Calcutta",				# 41 , "(GMT+05:30) Bombay, Calcutta, Madras, New Delhi"			},
	"ALMST-6"	=>	"Asia/Almaty",					# 42 , "(GMT+06:00) Almaty, Dhaka"									},
	"LKT-6"		=>	"Asia/Colombo",					# 43 , "(GMT+06:00) Colombo"										},
	"ICT-7"		=>	"Asia/Bangkok",					# 44 , "(GMT+07:00) Bangkok, Hanoi, Jakarta"						},
	"HKT-8"		=>	"Asia/Hong_Kong",				# 45 , "(GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi"			},
	"WST-8"		=>	"Australia/Perth",				# 46 , "(GMT+08:00) Perth"											},
	"SGT-8"		=>	"Asia/Singapore",				# 47 , "(GMT+08:00) Singapore"										},
	"CST-8"		=>	"Asia/Taipei",					# 48 , "(GMT+08:00) Taipei"											},
	"JST-9"		=>	"Asia/Tokyo",					# 49 , "(GMT+09:00) Osaka, Sapporo, Tokyo"							},
	"KST-9"		=>	"Asia/Seoul",					# 50 , "(GMT+09:00) Seoul"											},
	"YAKST-9"	=>	"Asia/Yakutsk",					# 51 , "(GMT+09:00) Yakutsk"										},
	"CST-0930"	=>	"Australia/Adelaide",				# 52 , "(GMT+09:30) Adelaide"										},
	"CST-0930"	=>	"Australia/Darwin",				# 53 , "(GMT+09:30) Darwin"											},
	"EST-10"	=>	"Australia/Brisbane",				# 54 , "(GMT+10:00) Brisbane"										},
	"EST-10"	=>	"Australia/Canberra",				# 55 , "(GMT+10:00) Canberra, Melbourne, Sydney"					},
	"PGT-10"	=>	"Pacific/Port_Moresby",				# 56 , "(GMT+10:00) Guam, Port Moresby"								},
	"EST-10"	=>	"Australia/Hobart",				# 57 , "(GMT+10:00) Hobart"											},
	"VLAST-10"	=>	"Asia/Vladivostok",				# 58 , "(GMT+10:00) Vladivostok"									},
	"MAGST-11"	=>	"Asia/Magadan",					# 59 , "(GMT+11:00) Magadan, Solomon Is., New Caledonia"			},
	"NZST-12"	=>	"Pacific/Auckland",				# 60 , "(GMT+12:00) Auckland, Wellington"							},
);

if($#ARGV != 0) {
	print "Usage: $0 timezone\n";
	exit 1;
}

my $zoneinfo_path;
if(exists $zoneinfo_tab{$ARGV[0]}) {
	$zoneinfo_path=$zoneinfo_tab{$ARGV[0]};
}
else {
	$zoneinfo_path=$zoneinfo_tab{'GMT0'};
}

print "$zoneinfo_path\n";

`ln -fs /usr/share/zoneinfo/$zoneinfo_path /etc/localtime`;

