12-locale.sh
66 lines
| 2.8 KiB
| application/x-sh
|
BashLexer
/ bootstrap.d / 12-locale.sh
Filip Pytloun
|
r56 | # | ||
Jan Wagner
|
r67 | # Setup Locales and keyboard settings | ||
Filip Pytloun
|
r56 | # | ||
Jan Wagner
|
r67 | # Load utility functions | ||
Filip Pytloun
|
r56 | . ./functions.sh | ||
Jan Wagner
|
r71 | # Install and setup timezone | ||
burnbabyburn
|
r310 | echo "${TIMEZONE}" > "${ETC_DIR}/timezone" | ||
Daniel Kraemer
|
r605 | if [ -f "${ETC_DIR}/localtime" ]; then | ||
# 1. If 11-apt.sh upgrades the package 'tzdata', '/etc/localtime' was created | ||||
# because 'dpkg-reconfigure -f noninteractive tzdata' was executed by apt-get. | ||||
# 2. If '/etc/localtime' exists, our execution of 'dpkg-reconfigure -f noninteractive tzdata' | ||||
# will ignore the our timezone set in '/etc/timezone'. | ||||
# 3. Removing /etc/localtime will solve this. | ||||
rm -f "${ETC_DIR}/localtime" | ||||
fi | ||||
Filip Pytloun
|
r56 | chroot_exec dpkg-reconfigure -f noninteractive tzdata | ||
Jan Wagner
|
r71 | # Install and setup default locale and keyboard configuration | ||
burnbabyburn
|
r310 | if [ "$(echo "$APT_INCLUDES" | grep ",locales")" ] ; then | ||
Filip Pytloun
|
r56 | # Set locale choice in debconf db, even though dpkg-reconfigure ignores and overwrites them due to some bug | ||
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=684134 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=685957 | ||||
# ... so we have to set locales manually | ||||
if [ "$DEFLOCAL" = "en_US.UTF-8" ] ; then | ||||
chroot_exec echo "locales locales/locales_to_be_generated multiselect ${DEFLOCAL} UTF-8" | debconf-set-selections | ||||
else | ||||
# en_US.UTF-8 should be available anyway : https://www.debian.org/doc/manuals/debian-reference/ch08.en.html#_the_reconfiguration_of_the_locale | ||||
chroot_exec echo "locales locales/locales_to_be_generated multiselect en_US.UTF-8 UTF-8, ${DEFLOCAL} UTF-8" | debconf-set-selections | ||||
drtyhlpr
|
r94 | sed -i "/en_US.UTF-8/s/^#//" "${ETC_DIR}/locale.gen" | ||
Filip Pytloun
|
r56 | fi | ||
Jan Wagner
|
r67 | |||
drtyhlpr
|
r94 | sed -i "/${DEFLOCAL}/s/^#//" "${ETC_DIR}/locale.gen" | ||
Filip Pytloun
|
r56 | chroot_exec echo "locales locales/default_environment_locale select ${DEFLOCAL}" | debconf-set-selections | ||
chroot_exec locale-gen | ||||
Jan Wagner
|
r75 | chroot_exec update-locale LANG="${DEFLOCAL}" | ||
Filip Pytloun
|
r56 | |||
Jan Wagner
|
r71 | # Install and setup default keyboard configuration | ||
Unknown
|
r430 | if [ "$XKB_MODEL" != "" ] ; then | ||
drtyhlpr
|
r94 | sed -i "s/^XKBMODEL.*/XKBMODEL=\"${XKB_MODEL}\"/" "${ETC_DIR}/default/keyboard" | ||
Filip Pytloun
|
r56 | fi | ||
Unknown
|
r430 | if [ "$XKB_LAYOUT" != "" ] ; then | ||
drtyhlpr
|
r94 | sed -i "s/^XKBLAYOUT.*/XKBLAYOUT=\"${XKB_LAYOUT}\"/" "${ETC_DIR}/default/keyboard" | ||
Filip Pytloun
|
r56 | fi | ||
Jan Wagner
|
r67 | if [ "$XKB_VARIANT" != "" ] ; then | ||
drtyhlpr
|
r94 | sed -i "s/^XKBVARIANT.*/XKBVARIANT=\"${XKB_VARIANT}\"/" "${ETC_DIR}/default/keyboard" | ||
Filip Pytloun
|
r56 | fi | ||
Jan Wagner
|
r67 | if [ "$XKB_OPTIONS" != "" ] ; then | ||
drtyhlpr
|
r94 | sed -i "s/^XKBOPTIONS.*/XKBOPTIONS=\"${XKB_OPTIONS}\"/" "${ETC_DIR}/default/keyboard" | ||
Filip Pytloun
|
r56 | fi | ||
chroot_exec dpkg-reconfigure -f noninteractive keyboard-configuration | ||||
Jan Wagner
|
r67 | |||
Jan Wagner
|
r71 | # Install and setup font console | ||
Filip Pytloun
|
r56 | case "${DEFLOCAL}" in | ||
*UTF-8) | ||||
drtyhlpr
|
r94 | sed -i 's/^CHARMAP.*/CHARMAP="UTF-8"/' "${ETC_DIR}/default/console-setup" | ||
Filip Pytloun
|
r56 | ;; | ||
*) | ||||
drtyhlpr
|
r94 | sed -i 's/^CHARMAP.*/CHARMAP="guess"/' "${ETC_DIR}/default/console-setup" | ||
Filip Pytloun
|
r56 | ;; | ||
esac | ||||
chroot_exec dpkg-reconfigure -f noninteractive console-setup | ||||
drtyhlpr
|
r88 | else # (no locales were installed) | ||
Jan Wagner
|
r71 | # Install POSIX default locale | ||
drtyhlpr
|
r94 | install_readonly files/locales/locale "${ETC_DIR}/default/locale" | ||
Filip Pytloun
|
r56 | fi | ||