V8.00.000.2025.06.17
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
This commit is contained in:
@@ -45,8 +45,8 @@ setup_locales() {
|
||||
|
||||
### Give priority to '${locale_locale}' over separately configured variables '${locale_country}' and '${locale_language}'.
|
||||
### If 'locale_locale' is not set, build it from 'locale_language' and 'locale_country'.
|
||||
if [[ -n "${locale_language:-}" && -n "${locale_country:-}" && -z "${locale_locale:-}" ]]; then
|
||||
declare locale_locale="${locale_language}_${locale_country}.UTF-8"
|
||||
if [[ -n "${locale_language:-}" && -n "${locale_country:-}" && -z "${ARY_LOCALE[0]:-}" ]]; then
|
||||
ARY_LOCALE+="${locale_language}_${locale_country}.UTF-8"
|
||||
fi
|
||||
|
||||
### Creat Hook in target.
|
||||
@@ -67,34 +67,53 @@ set -x
|
||||
exec 2>/tmp/locale-hook-debug.log
|
||||
set -Ceuo pipefail
|
||||
|
||||
echo "locales locales/locales_to_be_generated multiselect ${locale_locale:-en_US.UTF-8} UTF-8" | debconf-set-selections
|
||||
echo "locales locales/default_environment_locale select ${locale_locale:-en_US.UTF-8}" | debconf-set-selections
|
||||
declare -a ary_locale=()
|
||||
declare -r locale_0=${ARY_LOCALE[0]:-en_US.UTF-8}
|
||||
declare -r locale_1=${ARY_LOCALE[1]:-}
|
||||
declare loc=""
|
||||
|
||||
if ! grep -qx "${locale_locale:-en_US.UTF-8} UTF-8" /etc/locale.gen; then
|
||||
sed -i "s/# ${locale_locale:-en_US.UTF-8} UTF-8/${locale_locale:-en_US.UTF-8} UTF-8/" /etc/locale.gen || \
|
||||
echo "${locale_locale:-en_US.UTF-8} UTF-8" >> /etc/locale.gen
|
||||
fi
|
||||
EOF
|
||||
|
||||
locale-gen --purge "${locale_locale:-en_US.UTF-8}"
|
||||
cat << 'EOF' >> "${TARGET}${var_locale_hook}"
|
||||
ary_locale+=( "${locale_0}" )
|
||||
[[ -n "${locale_1}" ]] && ary_locale+=( "${locale_1}" )
|
||||
|
||||
for loc in "${ary_locale[@]}"; do
|
||||
if ! grep -qx "${loc} UTF-8" /etc/locale.gen; then
|
||||
sed -i "s/^# ${loc} UTF-8/${loc} UTF-8/" /etc/locale.gen || echo "${loc} UTF-8" >> /etc/locale.gen
|
||||
fi
|
||||
done
|
||||
|
||||
locale-gen --purge "${ary_locale[@]}"
|
||||
|
||||
for loc in "${ary_locale[@]}"; do
|
||||
locale_check=$(echo "${loc}" | sed 's/UTF-8/utf8/')
|
||||
if ! locale -a | grep -qx "${locale_check}"; then
|
||||
echo "Locale '${loc}' has not been generated successfully." >&2
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
EOF
|
||||
|
||||
cat << EOF >> "${TARGET}${var_locale_hook}"
|
||||
update-locale \
|
||||
LANG=${locale_locale} \
|
||||
LC_ADDRESS=${locale_override_address:-${locale_locale}} \
|
||||
LC_COLLATE=${locale_override_collate:-${locale_locale}} \
|
||||
LC_CTYPE=${locale_override_ctype:-${locale_locale}} \
|
||||
LC_MEASUREMENT=${locale_override_measurement:-${locale_locale}} \
|
||||
LC_MESSAGES=${locale_override_messages:-${locale_locale}} \
|
||||
LC_MONETARY=${locale_override_monetary:-${locale_locale}} \
|
||||
LC_NAME=${locale_override_name:-${locale_locale}} \
|
||||
LC_NUMERIC=${locale_override_numeric:-${locale_locale}} \
|
||||
LC_PAPER=${locale_override_paper:-${locale_locale}} \
|
||||
LC_TELEPHONE=${locale_override_telephone:-${locale_locale}} \
|
||||
LC_TIME=${locale_override_time:-${locale_locale}} \
|
||||
LC_IDENTIFICATION=${locale_locale}
|
||||
LANG=${ARY_LOCALE[0]} \
|
||||
LC_ADDRESS=${locale_override_address:-${ARY_LOCALE[0]}} \
|
||||
LC_COLLATE=${locale_override_collate:-${ARY_LOCALE[0]}} \
|
||||
LC_CTYPE=${locale_override_ctype:-${ARY_LOCALE[0]}} \
|
||||
LC_MEASUREMENT=${locale_override_measurement:-${ARY_LOCALE[0]}} \
|
||||
LC_MESSAGES=${locale_override_messages:-${ARY_LOCALE[0]}} \
|
||||
LC_MONETARY=${locale_override_monetary:-${ARY_LOCALE[0]}} \
|
||||
LC_NAME=${locale_override_name:-${ARY_LOCALE[0]}} \
|
||||
LC_NUMERIC=${locale_override_numeric:-${ARY_LOCALE[0]}} \
|
||||
LC_PAPER=${locale_override_paper:-${ARY_LOCALE[0]}} \
|
||||
LC_TELEPHONE=${locale_override_telephone:-${ARY_LOCALE[0]}} \
|
||||
LC_TIME=${locale_override_time:-${ARY_LOCALE[0]}} \
|
||||
LC_IDENTIFICATION=${ARY_LOCALE[0]}
|
||||
|
||||
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh
|
||||
EOF
|
||||
|
||||
chmod 0700 "${TARGET}${var_locale_hook}"
|
||||
do_in_target_script "${TARGET}" "${var_locale_hook}"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user