# Rebuild locales set in /etc/default/libc-locales.
#
case "${ACTION}" in
post)
	LOCALE_ARCHIVEDIR=usr/lib/locale
	LOCALE_ARCHIVE=${LOCALE_ARCHIVEDIR}/locale-archive
	LOCALES_CONF=etc/default/libc-locales
	LOCALES=usr/share/i18n/locales
	LOCALE_ALIAS=usr/share/locale/locale.alias

	[ -n "$POSIXLY_CORRECT" ] && unset POSIXLY_CORRECT
	[ -f $LOCALE_ARCHIVE ] && rm -f $LOCALE_ARCHIVE
	[ ! -d $LOCALE_ARCHIVEDIR ] && mkdir -p $LOCALE_ARCHIVEDIR

	echo "Generating GNU libc locales..."
	while read locale charset; do
		case $locale in
			\#*) continue;;
			"") continue;;
		esac
		if [ -n "$locale" -a -n "$charset" ]; then
			echo -n "  $(echo $locale | sed 's/\([^.\@]*\).*/\1/')"
			echo -n ".$charset"
			echo -n $(echo $locale | sed 's/\([^\@]*\)\(\@.*\)*/\2/')
			echo -n '...'
			if [ -f $LOCALES/$locale ]; then
				input=$locale
			else
				input=$(echo $locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/')
			fi
			localedef --prefix=. \
				-i $input -c -f $charset -A $LOCALE_ALIAS $locale
			echo ' done.'
		else
			echo "Ignoring wrong locale: $locale $charset..."
		fi
	done < $LOCALES_CONF
	;;
esac
