#!/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

if test -f /etc/default/locale {
    # In order to permit auto-detection of the charmap when
    # console-setup-mini operates without configuration file.
    source /etc/default/locale
    export LANG
}

if test -f /lib/lsb/init-functions {
    source /lib/lsb/init-functions
} else {
    proc log_action_begin_msg {
	echo -n "$[join(ARGV)]... "
    }

    proc log_action_end_msg {
	if test $1 -eq 0 { 
	    echo done.
	} else {
	    echo failed.
	}
    }
}

case (1) {
    stop|status {
        # keyboard-setup isn't a daemon
        }
    start|force-reload|restart|reload {
	# If plymouth is running, then the console may be in raw mode and
	# loadkeys will do confusing things to the keymap, so don't try.
	if ! type plymouth >/dev/null || ! plymouth --ping {
	    log_action_begin_msg "Setting preliminary keymap"
	    if setupcon -k --force 2>/dev/null {
		log_action_end_msg 0
	    } else {
		log_action_end_msg $?
	    }
	}
	}
    * {
        echo 'Usage: /etc/init.d/keyboard-setup {start|reload|restart|force-reload|stop|status}'
        exit 1
        }
}

exit 0