#!/bin/sh
### BEGIN INIT INFO
# Provides:          kbd
# Required-Start:    $remote_fs
# Required-Stop:
# Default-Start:     S
# Default-Stop:
# X-Interactive:     true
# Description: Set console screen modes and fonts
# Short-Description:    Prepare console
### END INIT INFO

# This is the boot script for the `kbd' package.
# It loads parameters from /etc/kbd/config and maybe loads
# default font and map.
# (c) 1997 Yann Dirson

PKG=kbd
if [ -r /etc/$PKG/config ]; then
    . /etc/$PKG/config
fi

if [ -d /etc/$PKG/config.d ]; then
    for i in `run-parts --list /etc/$PKG/config.d `; do
       . $i
    done
fi

# do some magic with the variables for compatibility with the config
# file of console-tools
for vc in '' `set | grep "^.*_vc[0-9][0-9]*="  | sed 's/^.*\(_vc[0-9][0-9]*\)=.*/\1/'`
do
    eval [ '"'\${SCREEN_FONT$vc}'"' ] && eval CONSOLE_FONT$vc=\${CONSOLE_FONT$vc:-\${SCREEN_FONT$vc}}
    eval [ '"'\${SCREEN_FONT_MAP$vc}'"' ] && eval FONT_MAP$vc=\${FONT_MAP$vc:-\${SCREEN_FONT_MAP$vc}}
    eval [ '"'\${APP_CHARSET_MAP$vc}'"' ] && eval CONSOLE_MAP$vc=\${CONSOLE_MAP$vc:-\${APP_CHARSET_MAP$vc}}
done

. /lib/lsb/init-functions

PATH=/sbin:/bin:/usr/sbin:/usr/bin
SETFONT_OPT="-v"

if which setupcon >/dev/null
then
    HAVE_SETUPCON=yes
fi

# set DEVICE_PREFIX depending on devfs/udev
if [ -d /dev/vc ]; then
    DEVICE_PREFIX="/dev/vc/"
else
    DEVICE_PREFIX="/dev/tty"
fi

# determine the system charmap
ENV_FILE=''
[ -r /etc/environment ] && ENV_FILE="/etc/environment"
[ -r /etc/default/locale ] && ENV_FILE="/etc/default/locale"
[ "$ENV_FILE" ] && CHARMAP=$(set -a && . "$ENV_FILE" && locale charmap)
if [ "$CHARMAP" = "UTF-8" -a -z "$CONSOLE_MAP" ]
then
    UNICODE_MODE=yes
fi

unicode_start_stop ()
{
    vc=$1
    if [ -n "$UNICODE_MODE" -a -z "`eval echo \\$CONSOLE_MAP_vc$vc`" ]; then
        action=unicode_start
    else
        action=unicode_stop
    fi
    if [ "${CONSOLE_FONT}" ]; then
        $action "${CONSOLE_FONT}" < ${DEVICE_PREFIX}$vc > ${DEVICE_PREFIX}$vc 2> /dev/null || true
    else
        $action < ${DEVICE_PREFIX}$vc > ${DEVICE_PREFIX}$vc 2> /dev/null || true
    fi
}

setup ()
{
    # be sure the main program is installed
    which setfont >/dev/null || return

    VT="no"
    # If we can't access the console, quit
    CONSOLE_TYPE=`fgconsole 2>/dev/null` || return

    if [ ! $CONSOLE_TYPE = "serial" ]; then
        readlink /proc/self/fd/0 | grep -q -e /dev/vc -e '/dev/tty[^p]' -e /dev/console
        if [ $? -eq 0 ]; then
            VT="yes"
        fi
    fi

    [ $VT = "no" ] && return

    # start vcstime
    if [ "${DO_VCSTIME}" = "yes" ] && which vcstime >/dev/null; then
        [ "$VERBOSE" != "no" ] && log_action_begin_msg "Starting clock on text console"
        vcstime &
        [ "$VERBOSE" != "no" ] && log_action_end_msg 0
    fi

    if [ -d /etc/init ] && which initctl >/dev/null; then
	    # Upstart
	    LIST_CONSOLES=`cd /etc/init; find -name 'tty*.conf' -printf '%f ' | sed -e 's/[^0-9 ]//g'`
    else
	    # traditional SysV init
	    LIST_CONSOLES=`sed -e '/^ *#/d' /etc/inittab | grep -e '\<tty[0-9]*\>' | awk -F: '{printf "%s ", $1}'`
    fi

    # Global default font+map
    if [ -z "${HAVE_SETUPCON}" -a "${CONSOLE_FONT}${CONSOLE_MAP}${FONT_MAP}" ]; then
        [ "$VERBOSE" != "no" ] && log_action_begin_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#_msg "Setting up generalconsole
#