#!/bin/sh
### BEGIN INIT INFO
# Provides:          keyboard-setup
# Required-Start:    mountkernfs
# Required-Stop:
# Should-Start:      keymap udev
# X-Start-Before:    checkroot
# Default-Start:     S
# Default-Stop:
# X-Interactive:     true
# Short-Description: Set preliminary keymap
# Description:       Set the console keyboard as early as possible
#                    so during the file systems checks the administrator
#                    can interact.  At this stage of the boot process
#                    only the ASCII symbols are supported.
### END INIT INFO

set -e

# This script is not used by keyboard-configuration.  It is used
# jointly by console-setup and console-setup-mini

test -f /bin/setupcon || exit 0

for param in $(cat /proc/cmdline /live/config/cmdline 2>/dev/null); do
    case "$param" in
                       lang=*) should_run=true ;;
        kbd=*|kbopt=*|kbvar=*) should_run=true ;;
          noloadkeys|conkbd=*)   dont_run=true ;;
    esac
done

if [ -f /etc/default/locale ]; then
    # In order to permit auto-detection of the charmap when
    # console-setup-mini operates without configuration file.
    . /etc/default/locale
    export LANG
fi

if [ -f /lib/lsb/init-functions ]; then
    . /lib/lsb/init-functions
else
    log_action_begin_msg () {
	echo -n "$@... "
    }

    log_action_end_msg () {
	if [ "$1" -eq 0 ]; then 
	    echo done.
	else
	    echo failed.
	fi
    }
fi

if [ -z "$should_run" -o -n "$dont_run" ]; then
    #loadkeys us
    font=Uni2-VGA16

	log_action_begin_msg "Setting console font to $font"

    for n in 1 2 3 4 5 6; do
        tty=/dev/tty$n
        test -e $tty || continue
        # echo setfont -C $tty $font
        setfont -C $tty $font
    done

    log_action_end_msg $?

    exit 0
fi


case "$1" in
    stop|status)
        # keyboard-setup isn't a daemon
        ;;
    start|force-reload|restart|reload)
	log_action_begin_msg "Setting preliminary keymap"
	if setupcon -k 2>/dev/null; then
	    log_action_end_msg 0
	else
	    log_action_end_msg $?
	fi
	;;
    *)
        echo 'Usage: /etc/init.d/keyboard-setup {start|reload|restart|force-reload|stop|status}'
        exit 1
        ;;
esac

exit 0
