#!/bin/sh
LOCALE_FILE="/usr/share/fll-live-initscripts/locales.csv"
# en_US\t0\tkbm\tkbv\tkbl\tkbo\ttz\tmirror\tlocales
# locales
#   locale1 locale2

LOCALES="$(locale -a)"

fll_locale_default() {
	# is this locale the default for it's language?
	return $(awk 'BEGIN{FS="\t"} /^'$1'\t/{print $2}' ${LOCALE_FILE})
}

fll_locale_cheats() {
	# the list of all ll_CC we know by cheat
	[ -n "${FLL_LOCALE_CHEATS}" ] && return

	FLL_LOCALE_CHEATS=$(awk 'BEGIN{FS="\t"} NR>1 {print $1" "}' ${LOCALE_FILE})
}

fll_locale_lang() {
	# set LANG to use for given cheat
	# get the list of locales the requested one lists
	locale_list=$(awk 'BEGIN{FS="\t"} /^'$1'\t/{print $5}' ${LOCALE_FILE})

	# starting with the given one, check each of those in turn
	for locale_temp in "$1 ${locale_list}"; do
		# get the list for the current locale
		locale_list2=$(awk 'BEGIN{FS="\t"} /^'$locale_temp'\t/{print $5}' ${LOCALE_FILE})

		# stop on first available locale
		for locale_temp2 in ${locale_list2}; do
			for locale_temp3 in ${LOCALES}; do
				[ "${locale_temp3}" = "${locale_temp2}" ] && LANG="${locale_temp3}" && return
			done
		done
	done
}

fll_locale_demo() {
	eval $(awk 'BEGIN{ FS="\t" }
		/^'$1'\t/ {
			if ($3) printf "XKBLAYOUT=\"%s\"\n", $3
			if ($4) printf "XKBVARIANT=\"%s\"\n", $4
		}' ${LOCALE_FILE})
}
