#!/bin/sh
-PREREQ=""
-DESCRIPTION="Setting up console keyboard..."
+#set -e
-. /scripts/live-functions
+# initramfs-tools header
+
+PREREQ=""
prereqs()
{
- echo "$PREREQ"
+ echo "${PREREQ}"
}
-case $1 in
-# get pre-requisites
-prereqs)
- prereqs
- exit 0
- ;;
+case "${1}" in
+ prereqs)
+ prereqs
+ exit 0
+ ;;
esac
-log_begin_msg "$DESCRIPTION"
+# live-initramfs header
-kbd=us
+if [ -n "${NOCONSOLEKEYBOARD}" ]
+then
+ exit 0
+fi
+
+. /scripts/live-functions
+
+log_begin_msg "Setting up console keyboard"
+
+# live-initramfs script
+
+kbd=
cslayout=
csvariant=
csmodel=
-for x in $(cat /proc/cmdline); do
- case $x in
- kbd-chooser/method=*)
- kbd=${x#kbd-chooser/method=}
- ;;
- console-setup/layoutcode=*)
- cslayout=${x#console-setup/layoutcode=}
- ;;
- console-setup/variantcode=*)
- csvariant=${x#console-setup/variantcode=}
- ;;
- console-setup/modelcode=*)
- csmodel=${x#console-setup/modelcode=}
- ;;
- esac
-done
-
-if [ -x /root/bin/setupcon ] && [ -f /root/etc/default/console-setup ]; then
- if [ "$cslayout" ]; then
- chroot /root sed -i "s/^XKBLAYOUT=.*/XKBLAYOUT=\"$cslayout\"/" \
- /etc/default/console-setup
- if [ "$csvariant" ]; then
- chroot /root sed -i "s/^XKBVARIANT=.*/XKBVARIANT=\"$csvariant\"/" \
- /etc/default/console-setup
- else
- live-preseed /root console-setup/variantcode '' false
- fi
- if [ "$csmodel" ]; then
- chroot /root sed -i "s/^XKBMODEL=.*/XKBMODEL=\"$csmodel\"/" \
- /etc/default/console-setup
- else
- live-preseed /root console-setup/modelcode '' false
- fi
- else
- live-preseed /root console-setup/layoutcode '' false
- live-preseed /root console-setup/variantcode '' false
- live-preseed /root console-setup/modelcode '' false
- fi
+# commandline
+if [ -n "${KBD}" ]
+then
+ kbd="${KBD}"
else
- chroot /root /usr/sbin/install-keymap $kbd
- live-preseed /root debian-installer/keymap "$kbd"
+ kbd=us
+fi
+
+really_export kbd
+
+if [ -n "${KLAYOUT}" ]
+then
+ cslayout="${KLAYOUT}"
fi
+
+if [ -n "${KVARIANT}" ]
+then
+ csvariant="${KVARIANT}"
+fi
+
+if [ -n "${KMODEL}" ]
+then
+ csmodel="${KMODEL}"
+fi
+
+if [ -x /root/bin/setupcon ]
+then
+ if [ -f /root/etc/default/keyboard ]
+ then
+ # squeeze
+ KEYBOARD_FILE="/etc/default/keyboard"
+ elif [ -f /root/etc/default/console-setup ]
+ then
+ # lenny
+ KEYBOARD_FILE="/etc/default/console-setup"
+ fi
+
+ if [ -n "/root${KEYBOARD_FILE}" ]
+ then
+ if [ "${cslayout}" ]
+ then
+ chroot /root sed -i "s/^XKBLAYOUT=.*/XKBLAYOUT=\"${cslayout}\"/" \
+ ${KEYBOARD_FILE}
+
+ if [ "${csvariant}" ]
+ then
+ chroot /root sed -i "s/^XKBVARIANT=.*/XKBVARIANT=\"${csvariant}\"/" \
+ ${KEYBOARD_FILE}
+ else
+ live-preseed /root console-setup/variantcode '' false
+ fi
+
+ if [ "${csmodel}" ]
+ then
+ chroot /root sed -i "s/^XKBMODEL=.*/XKBMODEL=\"${csmodel}\"/" \
+ ${KEYBOARD_FILE}
+ else
+ live-preseed /root console-setup/modelcode '' false
+ fi
+ else
+ live-preseed /root console-setup/layoutcode '' false
+ live-preseed /root console-setup/variantcode '' false
+ live-preseed /root console-setup/modelcode '' false
+ fi
+
+ live-preseed /root console-setup/optionscode '' false
+ live-preseed /root console-setup/codesetcode '' false
+
+ if [ -f /root/etc/init.d/usplash ]
+ then
+ sed -i 's/CONSOLE_SCREEN=$/CONSOLE_SCREEN=setupcon/; t END; b; : END; n; b END' /root/etc/init.d/usplash
+ elif [ -f /root/etc/init/usplash.conf ]
+ then
+ sed -i '/^post-stop script/a\
+ setupcon' /root/etc/init/usplash.conf
+ fi
+ fi
+elif [ -e /root/usr/sbin/install-keymap ]
+then
+ chroot /root /usr/sbin/install-keymap ${kbd}
+ live-preseed /root debian-installer/keymap "${kbd}"
+ live-preseed /root kbd-chooser/method "${kbd}"
+fi
+
log_end_msg