add PARTLABEL and PARTUUID
[platform/upstream/dracut.git] / modules.d / 10i18n / console_init.sh
1 #!/bin/sh
2 # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
3 # ex: ts=8 sw=4 sts=4 et filetype=sh
4
5 [ -n "$DRACUT_SYSTEMD" ] && exit 0
6
7 if [ -x $systemdutildir/systemd-vconsole-setup ]; then
8     $systemdutildir/systemd-vconsole-setup "$@"
9 fi
10
11 [ -e /etc/vconsole.conf ] && . /etc/vconsole.conf
12
13 DEFAULT_FONT=LatArCyrHeb-16
14 DEFAULT_KEYMAP=/etc/sysconfig/console/default.kmap
15
16 set_keyboard() {
17     local param
18
19     [ "${UNICODE}" = 1 ] && param=-u || param=-a
20     kbd_mode ${param}
21 }
22
23 set_terminal() {
24     local dev=$1
25
26     if [ "${UNICODE}" = 1 ]; then
27         printf '\033%%G' >&7
28         stty -F ${dev} iutf8
29     else
30         printf '\033%%@' >&7
31         stty -F ${dev} -iutf8
32     fi
33 }
34
35 set_keymap() {
36     local utf_switch
37
38     if [ -z "${KEYMAP}" ]; then
39         [ -f "${DEFAULT_KEYMAP}" ] && KEYMAP=${DEFAULT_KEYMAP}
40     fi
41
42     [ -n "${KEYMAP}" ] || return 1
43
44     [ "${UNICODE}" = 1 ] && utf_switch=-u
45
46     loadkeys -q ${utf_switch} ${KEYMAP} ${EXT_KEYMAPS}
47 }
48
49 set_font() {
50     local dev=$1; local trans=''; local uni=''
51
52     [ -z "${FONT}" ] && FONT=${DEFAULT_FONT}
53     [ -n "${FONT_MAP}" ] && trans="-m ${FONT_MAP}"
54     [ -n "${FONT_UNIMAP}" ] && uni="-u ${FONT_UNIMAP}"
55
56     setfont ${FONT} -C ${dev} ${trans} ${uni}
57 }
58
59 dev_close() {
60     exec 6>&-
61     exec 7>&-
62 }
63
64 dev_open() {
65     local dev=$1
66
67     exec 6<${dev} && \
68         exec 7>>${dev}
69 }
70
71 dev=/dev/${1#/dev/}
72 devname=${dev#/dev/}
73
74 [ -c "${dev}" ] || {
75     echo "Usage: $0 device" >&2
76     exit 1
77 }
78
79 dev_open ${dev}
80
81 for fd in 6 7; do
82     if ! [ -t ${fd} ]; then
83         echo "ERROR: File descriptor not opened: ${fd}" >&2
84         dev_close
85         exit 1
86     fi
87 done
88
89 set_keyboard
90 set_terminal ${dev}
91 set_font ${dev}
92 set_keymap
93
94 dev_close
95