#!/bin/sh -e
#
# Test if the timezone is correct.

if test -r /etc/skolelinux/config ; then
    mv /etc/skolelinux/config /etc/debian-edu/config
fi

if test -r /etc/debian-edu/config ; then
    . /etc/debian-edu/config
fi

#/etc/localtime is now copied, not symlinked
#curzone=`readlink /etc/localtime | sed 's%^/usr/share/zoneinfo/%%'`
curzone=$(cat /etc/timezone)

map_locale_to_timezone() {
    case "$1" in
	*_BE*)
	    localzone="Europe/Brussels"
	    ;;
	*_BR)
	    localzone="America/Sao_Paulo America/Noronha \
	               America/Belem America/Fortaleza \
		       America/Recife America/Araguaina \
		       America/Maceio America/Cuiaba \
		       America/Porto_Velho America/Boa_Vista \
		       America/Manaus America/Eirunepe \
		       America/Rio_Brancor"
	    ;;
	*_DE*)
	    localzone="Europe/Berlin"
	    ;;
	*_DK)
	    localzone="Europe/Copenhagen"
	    ;;
	*_ES*)
	    localzone="Europe/Madrid"
	    ;;
	*_FI*)
	    localzone="Europe/Helsinki"
	    ;;
	*_FR*)
	    localzone="Europe/Paris"
	    ;;
	*_IT*)
	    localzone="Europe/Rome"
	    ;;
	*_LV)
	    localzone="Europe/Riga"
	    ;;
	*_MX)
	    localzone="America/Mexico_City America/Cancun America/Merida \
	               America/Monterrey America/Mazatlan America/Chihuahua \
		       America/Hermosillo America/Tijuana"
	    ;;
	*_NL*)
	    localzone="Europe/Amsterdam"
	    ;;
	*_NO)
	    localzone="Europe/Oslo"
	    ;;
	*_PL)
	    localzone="Europe/Warsaw"
	    ;;
	*_BR)
	    localzone="America/Sao_Paulo"
	    ;;
	*_SE)
	    localzone="Europe/Oslo"
	    ;;
	*_SV)
	    localzone="Europe/Stockholm"
	    ;;
	*)
	    # Accept the existing value if the default language is unspecified
	    localzone="$curzone";
	    ;;
    esac
}

map_locale_to_timezone "$LOCALE"

foundZone=true
for zone in $localzone; do
 if test "$curzone" != "$zone"; then
     foundZone=false;
 else
    if diff /etc/localtime /usr/share/zoneinfo/$curzone >/dev/null ; then 
        echo "success: $0: Time zone is '$curzone'."
        exit;
    else
        echo "error: $0: /etc/localtime is not equal to /usr/share/zoneinfo/$curzone."
    fi; 
 fi;    
done     

echo "error: $0: Time zone is '$curzone', which is not one of ('$localzone')."

