From: Wilfried Göesgens Date: Tue, 24 Feb 2009 23:07:06 +0000 (+0000) Subject: * add Michael Meskes patch to the timezone guessing. X-Git-Tag: v7.86~1410 X-Git-Url: https://code.citadel.org/?a=commitdiff_plain;h=ec0b151a84b6da14479853715571f9c893f9f223;p=citadel.git * add Michael Meskes patch to the timezone guessing. --- diff --git a/citadel/guesstimezone.sh b/citadel/guesstimezone.sh index 90493fd17..0c86ffce2 100755 --- a/citadel/guesstimezone.sh +++ b/citadel/guesstimezone.sh @@ -19,8 +19,328 @@ # with this program; if not, write to the Free Software Foundation, Inc., # 675 Mass Ave, Cambridge, MA 02139, USA. +convert_timezone() +{ + case "$1" in + (right/*|posix/*) + convert_timezone "${1#*/}" + ;; + ("Africa/Asmera") + echo "Africa/Asmara" + ;; + ("America/Argentina/ComodRivadavia"|"America/Catamarca") + echo "America/Argentina/Catamarca" + ;; + ("America/Buenos_Aires") + echo "America/Argentina/Buenos_Aires" + ;; + ("America/Cordoba"|"America/Rosario") + echo "America/Argentina/Cordoba" + ;; + ("America/Jujuy") + echo "America/Argentina/Jujuy" + ;; + ("America/Mendoza") + echo "America/Argentina/Mendoza" + ;; + ("Antarctica/South_Pole") + echo "Antarctica/McMurdo" + ;; + "Asia/Ashkhabad") + echo "Asia/Ashgabat" + ;; + ("Asia/Calcutta") + echo "Asia/Kolkata" + ;; + "Asia/Chungking") + echo "Asia/Chongqing" + ;; + "Asia/Dacca") + echo "Asia/Dhaka" + ;; + ("Asia/Katmandu") + echo "Asia/Kathmandu" + ;; + "Asia/Macao") + echo "Asia/Macau" + ;; + ("Asia/Saigon") + echo "Asia/Ho_Chi_Minh" + ;; + "Asia/Thimbu") + echo "Asia/Thimphu" + ;; + "Asia/Ulan_Bator") + echo "Asia/Ulaanbaatar" + ;; + "Atlantic/Faeroe") + echo "Atlantic/Faroe" + ;; + "Australia/ACT" | "Australia/NSW") + echo "Australia/Sydney" + ;; + "Australia/LHI") + echo "Australia/Lord_Howe" + ;; + "Australia/North") + echo "Australia/Darwin" + ;; + "Australia/Queensland") + echo "Australia/Brisbane" + ;; + "Australia/South") + echo "Australia/Adelaide" + ;; + "Australia/Tasmania") + echo "Australia/Hobart" + ;; + "Australia/Victoria") + echo "Australia/Melbourne" + ;; + "Australia/West") + echo "Australia/Perth" + ;; + "Brazil/Acre") + echo "America/Rio_Branco" + ;; + "Brazil/DeNoronha") + echo "America/Noronha" + ;; + "Brazil/East") + echo "America/Sao_Paulo" + ;; + "Brazil/West") + echo "America/Manaus" + ;; + "Canada/Atlantic") + echo "America/Halifax" + ;; + "Canada/Central") + echo "America/Winnipeg" + ;; + "Canada/East-Saskatchewan") + echo "America/Regina" + ;; + "Canada/Eastern") + echo "America/Toronto" + ;; + "Canada/Mountain") + echo "America/Edmonton" + ;; + "Canada/Newfoundland") + echo "America/St_Johns" + ;; + "Canada/Pacific") + echo "America/Vancouver" + ;; + "Canada/Saskatchewan") + echo "America/Regina" + ;; + "Canada/Yukon") + echo "America/Whitehorse" + ;; + "CET") + echo "Europe/Paris" + ;; + "Chile/Continental") + echo "America/Santiago" + ;; + "Chile/EasterIsland") + echo "Pacific/Easter" + ;; + "CST6CDT") + echo "SystemV/CST6CDT" + ;; + "Cuba") + echo "America/Havana" + ;; + "EET") + echo "Europe/Helsinki" + ;; + "Egypt") + echo "Africa/Cairo" + ;; + "Eire") + echo "Europe/Dublin" + ;; + "EST") + echo "SystemV/EST5" + ;; + "EST5EDT") + echo "SystemV/EST5EDT" + ;; + "GB") + echo "Europe/London" + ;; + "GB-Eire") + echo "Europe/London" + ;; + "GMT") + echo "Etc/GMT" + ;; + "GMT0") + echo "Etc/GMT0" + ;; + "GMT-0") + echo "Etc/GMT-0" + ;; + "GMT+0") + echo "Etc/GMT+0" + ;; + "Greenwich") + echo "Etc/Greenwich" + ;; + "Hongkong") + echo "Asia/Hong_Kong" + ;; + "HST") + echo "Pacific/Honolulu" + ;; + "Iceland") + echo "Atlantic/Reykjavik" + ;; + "Iran") + echo "Asia/Tehran" + ;; + "Israel") + echo "Asia/Tel_Aviv" + ;; + "Jamaica") + echo "America/Jamaica" + ;; + "Japan") + echo "Asia/Tokyo" + ;; + "Kwajalein") + echo "Pacific/Kwajalein" + ;; + "Libya") + echo "Africa/Tripoli" + ;; + "MET") + echo "Europe/Paris" + ;; + "Mexico/BajaNorte") + echo "America/Tijuana" + ;; + "Mexico/BajaSur") + echo "America/Mazatlan" + ;; + "Mexico/General") + echo "America/Mexico_City" + ;; + "Mideast/Riyadh87") + echo "Asia/Riyadh87" + ;; + "Mideast/Riyadh88") + echo "Asia/Riyadh88" + ;; + "Mideast/Riyadh89") + echo "Asia/Riyadh89" + ;; + "MST") + echo "SystemV/MST7" + ;; + "MST7MDT") + echo "SystemV/MST7MDT" + ;; + "Navajo") + echo "America/Denver" + ;; + "NZ") + echo "Pacific/Auckland" + ;; + "NZ-CHAT") + echo "Pacific/Chatham" + ;; + "Poland") + echo "Europe/Warsaw" + ;; + "Portugal") + echo "Europe/Lisbon" + ;; + "PRC") + echo "Asia/Shanghai" + ;; + "PST8PDT") + echo "SystemV/PST8PDT" + ;; + "ROC") + echo "Asia/Taipei" + ;; + "ROK") + echo "Asia/Seoul" + ;; + "Singapore") + echo "Asia/Singapore" + ;; + "Turkey") + echo "Europe/Istanbul" + ;; + "UCT") + echo "Etc/UCT" + ;; + "Universal") + echo "Etc/UTC" + ;; + "US/Alaska") + echo "America/Anchorage" + ;; + "US/Aleutian") + echo "America/Adak" + ;; + "US/Arizona") + echo "America/Phoenix" + ;; + "US/Central") + echo "America/Chicago" + ;; + "US/East-Indiana") + echo "America/Indianapolis" + ;; + "US/Eastern") + echo "America/New_York" + ;; + "US/Hawaii") + echo "Pacific/Honolulu" + ;; + "US/Indiana-Starke") + echo "America/Indianapolis" + ;; + "US/Michigan") + echo "America/Detroit" + ;; + "US/Mountain") + echo "America/Denver" + ;; + "US/Pacific") + echo "America/Los_Angeles" + ;; + "US/Samoa") + echo "Pacific/Pago_Pago" + ;; + "UTC") + echo "Etc/UTC" + ;; + "WET") + echo "Europe/Lisbon" + ;; + "W-SU") + echo "Europe/Moscow" + ;; + "Zulu") + echo "Etc/UTC" + ;; + *) + echo "$1" + ;; + esac +} + md5sum /dev/null 2>/dev/null || exit 1 - + +# this check will find the timezone if /etc/localtime is a link to the right timezone file +# or that file has been copied to /etc/localtime and not changed afterwards LOCALTIMESUM=`md5sum /etc/localtime | awk ' { print $1 } ' 2>/dev/null` find /usr/share/zoneinfo -type f -print | while read filename do @@ -30,4 +350,19 @@ do exit 0 fi done 2>/dev/null + +# seems we haven't found the timezone yet, let's see whether /etc/timezone has some info + +if [ -e /etc/timezone ]; then + TIMEZONE="$(head -n 1 /etc/timezone)" + TIMEZONE="${TIMEZONE%% *}" + TIMEZONE="${TIMEZONE##/}" + TIMEZONE="${TIMEZONE%%/}" + TIMEZONE="$(convert_timezone $TIMEZONE)" + if [ -f "/usr/share/zoneinfo/$TIMEZONE" ] ; then + echo $TIMEZONE + exit 0 + fi +fi + exit 2