archboot/usr/bin/archboot-locale.sh
Tobias Powalowski 6b1bd00f57 delete .locale
2023-03-03 07:15:47 +01:00

62 lines
1.8 KiB
Bash
Executable file

#!/usr/bin/env bash
# SPDX-License-Identifier: GPL-2.0-only
# written by Tobias Powalowski <tpowa@archlinux.org>
_ANSWER="/tmp/.locale"
_TITLE="Archboot Arch Linux --> System Wide Locale Setting"
# _dialog()
# an el-cheapo dialog wrapper
#
# parameters: see dialog(1)
# returns: whatever dialog did
_dialog() {
dialog --backtitle "${_TITLE}" --aspect 15 "$@"
return $?
}
_abort()
{
_dialog --yesno "Abort Arch Linux System Wide Locale Setting?" 5 60 || return 0
[[ -e /tmp/.locale-running ]] && rm /tmp/.locale-running
[[ -e /tmp/.locale ]] && rm /tmp/.locale
clear
exit 1
}
_do_locale() {
_dialog --infobox "Setting System Wide Locale ${_LOCALE}..." 3 50
echo "LANG=${_LOCALE}.UTF-8" > /etc/locale.conf
echo "LANG=${_LOCALE}.UTF-8" > /tmp/.locale
echo LC_COLLATE=C >> /etc/locale.conf
localectl set-locale "${_LOCALE}.UTF-8" &>/dev/null
echo "${_LOCALE}.UTF-8 UTF-8" >> /etc/locale.gen
locale-gen &>/dev/null
export "LANG=${_LOCALE}.UTF-8"
sleep 2
}
_set_locale() {
_LOCALE=""
_LOCALES="en_US English de_DE German es_ES Spanish fr_FR French pt_PT Portuguese ru_RU Russian"
_CANCEL=""
#shellcheck disable=SC2086
_dialog --menu "Select A System Wide Locale:" 13 35 8 ${_LOCALES} 2>${_ANSWER} || _abort
_LOCALE=$(cat ${_ANSWER})
if [[ -n ${_LOCALE} ]]; then
_dialog --yesno "Do you want to use ${_LOCALE}.UTF-8 as System Wide Locale?" 5 60 || _LOCALE=""
fi
}
if [[ -e /tmp/.locale-running ]]; then
echo "System Wide Locale Setting already runs on a different console!"
echo "Please remove /tmp/.locale-running first!"
exit 1
fi
: >/tmp/.locale-running
while [[ -z ${_LOCALE} ]]; do
_set_locale
done
_do_locale
[[ -e /tmp/.locale-running ]] && rm /tmp/.locale-running
clear
exit 0
# vim: set ts=4 sw=4 et: