diff options
author | David Härdeman <david@austin.(none)> | 2007-04-12 21:56:32 +0200 |
---|---|---|
committer | David Härdeman <david@austin.(none)> | 2007-04-12 21:56:32 +0200 |
commit | 1541218fe148cfae9c3a4ce84e7fd6692f3d2028 (patch) | |
tree | 94ed1a69e1aea03c37cfde1237c64a54e00e3469 /hooks | |
parent | fdbdb7193427633c6ac8574f5416058b3b70e305 (diff) | |
download | initramfs-tools-1541218fe148cfae9c3a4ce84e7fd6692f3d2028.tar.gz initramfs-tools-1541218fe148cfae9c3a4ce84e7fd6692f3d2028.zip |
Add support for loading keymaps. (closes: 337663)
Diffstat (limited to 'hooks')
-rwxr-xr-x | hooks/keymap | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/hooks/keymap b/hooks/keymap new file mode 100755 index 0000000..749f24c --- /dev/null +++ b/hooks/keymap @@ -0,0 +1,55 @@ +#!/bin/sh + +PREREQ="" + +prereqs() +{ + echo "$PREREQ" +} + +case $1 in +# get pre-requisites +prereqs) + prereqs + exit 0 + ;; +esac + +# Hook to load keymaps into the initramfs if requested by KEYMAP="y" +if [ "$KEYMAP" != "y" ] && [ "$KEYMAP" != "Y" ]; then + exit 0 +fi + +# Step 1 - Basic tools +if [ ! -x /bin/loadkeys ] || [ ! -r /etc/console/boottime.kmap.gz ]; then + exit 0 +fi + +. /usr/share/initramfs-tools/hook-functions +copy_exec /bin/loadkeys /bin +cp /etc/console/boottime.kmap.gz ${DESTDIR}/etc + +# Step 2 - Check for UTF8 console +if [ ! -x /usr/bin/kbd_mode ]; then + exit 0 +fi + +if [ -r /etc/environment ]; then + env="/etc/environment" +elif [ -r /etc/default/locale ]; then + env="/etc/default/locale" +else + exit 0 +fi + +for var in LANG LC_ALL LC_CTYPE; do + value=$(egrep "^[^#]*${var}=" $env | tail -n1 | cut -d= -f2) + eval $var=$value +done + +charmap=$(LANG=$LANG LC_ALL=$LC_ALL LC_CTYPE=$LC_CTYPE locale charmap) +if [ "$charmap" = "UTF-8" ]; then + copy_exec /usr/bin/kbd_mode /bin +fi +exit 0 + |