1359 lines
25 KiB
Bash
Executable File
1359 lines
25 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# Copyright © 2005 Anton Zinoviev <anton@lml.bas.bg>
|
|
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 2 of the License, or
|
|
# (at your option) any later version.
|
|
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
|
|
# If you have not received a copy of the GNU General Public License
|
|
# along with this program, write to the Free Software Foundation, Inc.,
|
|
# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
# ----------
|
|
# CONTENTS
|
|
# ----------
|
|
#
|
|
# 1. Initialise the variables $fontsets and $charmaps that list all
|
|
# supported fontsets and charmaps.
|
|
#
|
|
# 2. Function available_fontsets - lists all fontfaces that can be
|
|
# used with $CODESET.
|
|
#
|
|
# 3. Function available_fontsizes - lists all font sizes that can be
|
|
# used with the $CODESET-$fontface combination.
|
|
#
|
|
# 4. Functions decode_charmap to decode 'Uni1' to 'Combined - Latin;
|
|
# Slavic Cyrillic; Hebrew; basic Arabic' and encode_charmap for the
|
|
# opposite conversion.
|
|
#
|
|
# 5. Set $locale. Extract the strings for the chosen language in $kbdnames.
|
|
#
|
|
# 6. Compute default values for $CODESET, $FONTFACE, $FONTSIZE, based
|
|
# on the the locale.
|
|
#
|
|
# 7. Overwrite (some of) the computed default values by the settings
|
|
# in the configuration file (/etc/default/console-setup).
|
|
#
|
|
# 8. Compute default values for the Debconf questions.
|
|
#
|
|
# 9. Ask the Debconf questions starting from STATE=1.
|
|
|
|
set -e
|
|
|
|
. /usr/share/debconf/confmodule
|
|
|
|
CONFIGFILE=/etc/default/console-setup
|
|
|
|
default_codeset=''
|
|
default_fontface=''
|
|
CHARMAP=''
|
|
CODESET=''
|
|
FONTFACE=''
|
|
FONTSIZE=''
|
|
|
|
|
|
fontsets='Arabic-Fixed15
|
|
Arabic-Fixed16
|
|
Arabic-VGA14
|
|
Arabic-VGA16
|
|
Arabic-VGA28x16
|
|
Arabic-VGA32x16
|
|
Arabic-VGA8
|
|
Armenian-Fixed13
|
|
Armenian-Fixed14
|
|
Armenian-Fixed15
|
|
Armenian-Fixed16
|
|
Armenian-Fixed18
|
|
CyrAsia-Fixed13
|
|
CyrAsia-Fixed14
|
|
CyrAsia-Fixed15
|
|
CyrAsia-Fixed16
|
|
CyrAsia-Fixed18
|
|
CyrAsia-Terminus12x6
|
|
CyrAsia-Terminus14
|
|
CyrAsia-Terminus16
|
|
CyrAsia-Terminus18x10
|
|
CyrAsia-Terminus20x10
|
|
CyrAsia-Terminus22x11
|
|
CyrAsia-Terminus24x12
|
|
CyrAsia-Terminus28x14
|
|
CyrAsia-Terminus32x16
|
|
CyrAsia-TerminusBold14
|
|
CyrAsia-TerminusBold16
|
|
CyrAsia-TerminusBold18x10
|
|
CyrAsia-TerminusBold20x10
|
|
CyrAsia-TerminusBold22x11
|
|
CyrAsia-TerminusBold24x12
|
|
CyrAsia-TerminusBold28x14
|
|
CyrAsia-TerminusBold32x16
|
|
CyrAsia-TerminusBoldVGA14
|
|
CyrAsia-TerminusBoldVGA16
|
|
CyrKoi-Fixed13
|
|
CyrKoi-Fixed14
|
|
CyrKoi-Fixed15
|
|
CyrKoi-Fixed16
|
|
CyrKoi-Fixed18
|
|
CyrKoi-Terminus12x6
|
|
CyrKoi-Terminus14
|
|
CyrKoi-Terminus16
|
|
CyrKoi-Terminus18x10
|
|
CyrKoi-Terminus20x10
|
|
CyrKoi-Terminus22x11
|
|
CyrKoi-Terminus24x12
|
|
CyrKoi-Terminus28x14
|
|
CyrKoi-Terminus32x16
|
|
CyrKoi-TerminusBold14
|
|
CyrKoi-TerminusBold16
|
|
CyrKoi-TerminusBold18x10
|
|
CyrKoi-TerminusBold20x10
|
|
CyrKoi-TerminusBold22x11
|
|
CyrKoi-TerminusBold24x12
|
|
CyrKoi-TerminusBold28x14
|
|
CyrKoi-TerminusBold32x16
|
|
CyrKoi-TerminusBoldVGA14
|
|
CyrKoi-TerminusBoldVGA16
|
|
CyrKoi-VGA14
|
|
CyrKoi-VGA16
|
|
CyrKoi-VGA28x16
|
|
CyrKoi-VGA32x16
|
|
CyrKoi-VGA8
|
|
CyrSlav-Fixed13
|
|
CyrSlav-Fixed14
|
|
CyrSlav-Fixed15
|
|
CyrSlav-Fixed16
|
|
CyrSlav-Fixed18
|
|
CyrSlav-Terminus12x6
|
|
CyrSlav-Terminus14
|
|
CyrSlav-Terminus16
|
|
CyrSlav-Terminus18x10
|
|
CyrSlav-Terminus20x10
|
|
CyrSlav-Terminus22x11
|
|
CyrSlav-Terminus24x12
|
|
CyrSlav-Terminus28x14
|
|
CyrSlav-Terminus32x16
|
|
CyrSlav-TerminusBold14
|
|
CyrSlav-TerminusBold16
|
|
CyrSlav-TerminusBold18x10
|
|
CyrSlav-TerminusBold20x10
|
|
CyrSlav-TerminusBold22x11
|
|
CyrSlav-TerminusBold24x12
|
|
CyrSlav-TerminusBold28x14
|
|
CyrSlav-TerminusBold32x16
|
|
CyrSlav-TerminusBoldVGA14
|
|
CyrSlav-TerminusBoldVGA16
|
|
CyrSlav-VGA14
|
|
CyrSlav-VGA16
|
|
CyrSlav-VGA28x16
|
|
CyrSlav-VGA32x16
|
|
CyrSlav-VGA8
|
|
Ethiopian-Fixed15
|
|
Ethiopian-Fixed16
|
|
Ethiopian-Fixed18
|
|
Ethiopian-Goha12
|
|
Ethiopian-Goha14
|
|
Ethiopian-Goha16
|
|
Ethiopian-GohaClassic12
|
|
Ethiopian-GohaClassic14
|
|
Ethiopian-GohaClassic16
|
|
FullCyrAsia-Fixed13
|
|
FullCyrAsia-Fixed14
|
|
FullCyrAsia-Fixed15
|
|
FullCyrAsia-Fixed16
|
|
FullCyrAsia-Fixed18
|
|
FullCyrAsia-Terminus12x6
|
|
FullCyrAsia-Terminus14
|
|
FullCyrAsia-Terminus16
|
|
FullCyrAsia-Terminus18x10
|
|
FullCyrAsia-Terminus20x10
|
|
FullCyrAsia-Terminus22x11
|
|
FullCyrAsia-Terminus24x12
|
|
FullCyrAsia-Terminus28x14
|
|
FullCyrAsia-Terminus32x16
|
|
FullCyrAsia-TerminusBold14
|
|
FullCyrAsia-TerminusBold16
|
|
FullCyrAsia-TerminusBold18x10
|
|
FullCyrAsia-TerminusBold20x10
|
|
FullCyrAsia-TerminusBold22x11
|
|
FullCyrAsia-TerminusBold24x12
|
|
FullCyrAsia-TerminusBold28x14
|
|
FullCyrAsia-TerminusBold32x16
|
|
FullCyrAsia-TerminusBoldVGA14
|
|
FullCyrAsia-TerminusBoldVGA16
|
|
FullCyrSlav-Fixed13
|
|
FullCyrSlav-Fixed14
|
|
FullCyrSlav-Fixed15
|
|
FullCyrSlav-Fixed16
|
|
FullCyrSlav-Fixed18
|
|
FullCyrSlav-Terminus12x6
|
|
FullCyrSlav-Terminus14
|
|
FullCyrSlav-Terminus16
|
|
FullCyrSlav-Terminus18x10
|
|
FullCyrSlav-Terminus20x10
|
|
FullCyrSlav-Terminus22x11
|
|
FullCyrSlav-Terminus24x12
|
|
FullCyrSlav-Terminus28x14
|
|
FullCyrSlav-Terminus32x16
|
|
FullCyrSlav-TerminusBold14
|
|
FullCyrSlav-TerminusBold16
|
|
FullCyrSlav-TerminusBold18x10
|
|
FullCyrSlav-TerminusBold20x10
|
|
FullCyrSlav-TerminusBold22x11
|
|
FullCyrSlav-TerminusBold24x12
|
|
FullCyrSlav-TerminusBold28x14
|
|
FullCyrSlav-TerminusBold32x16
|
|
FullCyrSlav-TerminusBoldVGA14
|
|
FullCyrSlav-TerminusBoldVGA16
|
|
FullCyrSlav-VGA14
|
|
FullCyrSlav-VGA16
|
|
FullCyrSlav-VGA28x16
|
|
FullCyrSlav-VGA32x16
|
|
FullCyrSlav-VGA8
|
|
FullGreek-Fixed13
|
|
FullGreek-Fixed14
|
|
FullGreek-Fixed15
|
|
FullGreek-Fixed16
|
|
FullGreek-Fixed18
|
|
FullGreek-Terminus12x6
|
|
FullGreek-Terminus14
|
|
FullGreek-Terminus16
|
|
FullGreek-Terminus18x10
|
|
FullGreek-Terminus20x10
|
|
FullGreek-Terminus22x11
|
|
FullGreek-Terminus24x12
|
|
FullGreek-Terminus28x14
|
|
FullGreek-Terminus32x16
|
|
FullGreek-TerminusBold14
|
|
FullGreek-TerminusBold16
|
|
FullGreek-TerminusBold18x10
|
|
FullGreek-TerminusBold20x10
|
|
FullGreek-TerminusBold22x11
|
|
FullGreek-TerminusBold24x12
|
|
FullGreek-TerminusBold28x14
|
|
FullGreek-TerminusBold32x16
|
|
FullGreek-TerminusBoldVGA14
|
|
FullGreek-TerminusBoldVGA16
|
|
FullGreek-VGA14
|
|
FullGreek-VGA16
|
|
FullGreek-VGA28x16
|
|
FullGreek-VGA32x16
|
|
FullGreek-VGA8
|
|
Georgian-Fixed13
|
|
Georgian-Fixed14
|
|
Georgian-Fixed15
|
|
Georgian-Fixed16
|
|
Georgian-Fixed18
|
|
Greek-Fixed13
|
|
Greek-Fixed14
|
|
Greek-Fixed15
|
|
Greek-Fixed16
|
|
Greek-Fixed18
|
|
Greek-Terminus12x6
|
|
Greek-Terminus14
|
|
Greek-Terminus16
|
|
Greek-Terminus18x10
|
|
Greek-Terminus20x10
|
|
Greek-Terminus22x11
|
|
Greek-Terminus24x12
|
|
Greek-Terminus28x14
|
|
Greek-Terminus32x16
|
|
Greek-TerminusBold14
|
|
Greek-TerminusBold16
|
|
Greek-TerminusBold18x10
|
|
Greek-TerminusBold20x10
|
|
Greek-TerminusBold22x11
|
|
Greek-TerminusBold24x12
|
|
Greek-TerminusBold28x14
|
|
Greek-TerminusBold32x16
|
|
Greek-TerminusBoldVGA14
|
|
Greek-TerminusBoldVGA16
|
|
Greek-VGA14
|
|
Greek-VGA16
|
|
Greek-VGA28x16
|
|
Greek-VGA32x16
|
|
Greek-VGA8
|
|
Hebrew-Fixed13
|
|
Hebrew-Fixed14
|
|
Hebrew-Fixed15
|
|
Hebrew-Fixed16
|
|
Hebrew-Fixed18
|
|
Hebrew-Terminus12x6
|
|
Hebrew-Terminus14
|
|
Hebrew-Terminus16
|
|
Hebrew-Terminus18x10
|
|
Hebrew-Terminus20x10
|
|
Hebrew-Terminus22x11
|
|
Hebrew-Terminus24x12
|
|
Hebrew-Terminus28x14
|
|
Hebrew-Terminus32x16
|
|
Hebrew-TerminusBold14
|
|
Hebrew-TerminusBold16
|
|
Hebrew-TerminusBold18x10
|
|
Hebrew-TerminusBold20x10
|
|
Hebrew-TerminusBold22x11
|
|
Hebrew-TerminusBold24x12
|
|
Hebrew-TerminusBold28x14
|
|
Hebrew-TerminusBold32x16
|
|
Hebrew-TerminusBoldVGA14
|
|
Hebrew-TerminusBoldVGA16
|
|
Hebrew-VGA14
|
|
Hebrew-VGA16
|
|
Hebrew-VGA28x16
|
|
Hebrew-VGA32x16
|
|
Hebrew-VGA8
|
|
Lao-Fixed14
|
|
Lao-Fixed15
|
|
Lao-Fixed16
|
|
Lat15-Fixed13
|
|
Lat15-Fixed14
|
|
Lat15-Fixed15
|
|
Lat15-Fixed16
|
|
Lat15-Fixed18
|
|
Lat15-Terminus12x6
|
|
Lat15-Terminus14
|
|
Lat15-Terminus16
|
|
Lat15-Terminus18x10
|
|
Lat15-Terminus20x10
|
|
Lat15-Terminus22x11
|
|
Lat15-Terminus24x12
|
|
Lat15-Terminus28x14
|
|
Lat15-Terminus32x16
|
|
Lat15-TerminusBold14
|
|
Lat15-TerminusBold16
|
|
Lat15-TerminusBold18x10
|
|
Lat15-TerminusBold20x10
|
|
Lat15-TerminusBold22x11
|
|
Lat15-TerminusBold24x12
|
|
Lat15-TerminusBold28x14
|
|
Lat15-TerminusBold32x16
|
|
Lat15-TerminusBoldVGA14
|
|
Lat15-TerminusBoldVGA16
|
|
Lat15-VGA14
|
|
Lat15-VGA16
|
|
Lat15-VGA28x16
|
|
Lat15-VGA32x16
|
|
Lat15-VGA8
|
|
Lat2-Fixed13
|
|
Lat2-Fixed14
|
|
Lat2-Fixed15
|
|
Lat2-Fixed16
|
|
Lat2-Fixed18
|
|
Lat2-Terminus12x6
|
|
Lat2-Terminus14
|
|
Lat2-Terminus16
|
|
Lat2-Terminus18x10
|
|
Lat2-Terminus20x10
|
|
Lat2-Terminus22x11
|
|
Lat2-Terminus24x12
|
|
Lat2-Terminus28x14
|
|
Lat2-Terminus32x16
|
|
Lat2-TerminusBold14
|
|
Lat2-TerminusBold16
|
|
Lat2-TerminusBold18x10
|
|
Lat2-TerminusBold20x10
|
|
Lat2-TerminusBold22x11
|
|
Lat2-TerminusBold24x12
|
|
Lat2-TerminusBold28x14
|
|
Lat2-TerminusBold32x16
|
|
Lat2-TerminusBoldVGA14
|
|
Lat2-TerminusBoldVGA16
|
|
Lat2-VGA14
|
|
Lat2-VGA16
|
|
Lat2-VGA28x16
|
|
Lat2-VGA32x16
|
|
Lat2-VGA8
|
|
Lat38-Fixed13
|
|
Lat38-Fixed14
|
|
Lat38-Fixed15
|
|
Lat38-Fixed16
|
|
Lat38-Fixed18
|
|
Lat38-Terminus12x6
|
|
Lat38-Terminus14
|
|
Lat38-Terminus16
|
|
Lat38-Terminus18x10
|
|
Lat38-Terminus20x10
|
|
Lat38-Terminus22x11
|
|
Lat38-Terminus24x12
|
|
Lat38-Terminus28x14
|
|
Lat38-Terminus32x16
|
|
Lat38-TerminusBold14
|
|
Lat38-TerminusBold16
|
|
Lat38-TerminusBold18x10
|
|
Lat38-TerminusBold20x10
|
|
Lat38-TerminusBold22x11
|
|
Lat38-TerminusBold24x12
|
|
Lat38-TerminusBold28x14
|
|
Lat38-TerminusBold32x16
|
|
Lat38-TerminusBoldVGA14
|
|
Lat38-TerminusBoldVGA16
|
|
Lat38-VGA14
|
|
Lat38-VGA16
|
|
Lat38-VGA28x16
|
|
Lat38-VGA32x16
|
|
Lat38-VGA8
|
|
Lat7-Fixed13
|
|
Lat7-Fixed14
|
|
Lat7-Fixed15
|
|
Lat7-Fixed16
|
|
Lat7-Fixed18
|
|
Lat7-Terminus12x6
|
|
Lat7-Terminus14
|
|
Lat7-Terminus16
|
|
Lat7-Terminus18x10
|
|
Lat7-Terminus20x10
|
|
Lat7-Terminus22x11
|
|
Lat7-Terminus24x12
|
|
Lat7-Terminus28x14
|
|
Lat7-Terminus32x16
|
|
Lat7-TerminusBold14
|
|
Lat7-TerminusBold16
|
|
Lat7-TerminusBold18x10
|
|
Lat7-TerminusBold20x10
|
|
Lat7-TerminusBold22x11
|
|
Lat7-TerminusBold24x12
|
|
Lat7-TerminusBold28x14
|
|
Lat7-TerminusBold32x16
|
|
Lat7-TerminusBoldVGA14
|
|
Lat7-TerminusBoldVGA16
|
|
Lat7-VGA14
|
|
Lat7-VGA16
|
|
Lat7-VGA28x16
|
|
Lat7-VGA32x16
|
|
Lat7-VGA8
|
|
Thai-Fixed13
|
|
Thai-Fixed14
|
|
Thai-Fixed15
|
|
Thai-Fixed16
|
|
Thai-Fixed18
|
|
Uni1-Fixed15
|
|
Uni1-Fixed16
|
|
Uni1-VGA14
|
|
Uni1-VGA16
|
|
Uni1-VGA28x16
|
|
Uni1-VGA32x16
|
|
Uni1-VGA8
|
|
Uni2-Fixed13
|
|
Uni2-Fixed14
|
|
Uni2-Fixed15
|
|
Uni2-Fixed16
|
|
Uni2-Fixed18
|
|
Uni2-Terminus12x6
|
|
Uni2-Terminus14
|
|
Uni2-Terminus16
|
|
Uni2-Terminus18x10
|
|
Uni2-Terminus20x10
|
|
Uni2-Terminus22x11
|
|
Uni2-Terminus24x12
|
|
Uni2-Terminus28x14
|
|
Uni2-Terminus32x16
|
|
Uni2-TerminusBold14
|
|
Uni2-TerminusBold16
|
|
Uni2-TerminusBold18x10
|
|
Uni2-TerminusBold20x10
|
|
Uni2-TerminusBold22x11
|
|
Uni2-TerminusBold24x12
|
|
Uni2-TerminusBold28x14
|
|
Uni2-TerminusBold32x16
|
|
Uni2-TerminusBoldVGA14
|
|
Uni2-TerminusBoldVGA16
|
|
Uni2-VGA14
|
|
Uni2-VGA16
|
|
Uni2-VGA28x16
|
|
Uni2-VGA32x16
|
|
Uni2-VGA8
|
|
Uni3-Fixed13
|
|
Uni3-Fixed14
|
|
Uni3-Fixed15
|
|
Uni3-Fixed16
|
|
Uni3-Fixed18
|
|
Uni3-Terminus12x6
|
|
Uni3-Terminus14
|
|
Uni3-Terminus16
|
|
Uni3-Terminus18x10
|
|
Uni3-Terminus20x10
|
|
Uni3-Terminus22x11
|
|
Uni3-Terminus24x12
|
|
Uni3-Terminus28x14
|
|
Uni3-Terminus32x16
|
|
Uni3-TerminusBold14
|
|
Uni3-TerminusBold16
|
|
Uni3-TerminusBold18x10
|
|
Uni3-TerminusBold20x10
|
|
Uni3-TerminusBold22x11
|
|
Uni3-TerminusBold24x12
|
|
Uni3-TerminusBold28x14
|
|
Uni3-TerminusBold32x16
|
|
Uni3-TerminusBoldVGA14
|
|
Uni3-TerminusBoldVGA16
|
|
Vietnamese-Fixed13
|
|
Vietnamese-Fixed14
|
|
Vietnamese-Fixed15
|
|
Vietnamese-Fixed16
|
|
Vietnamese-Fixed18
|
|
Vietnamese-Terminus12x6
|
|
Vietnamese-Terminus14
|
|
Vietnamese-Terminus16
|
|
Vietnamese-Terminus18x10
|
|
Vietnamese-Terminus20x10
|
|
Vietnamese-Terminus22x11
|
|
Vietnamese-Terminus24x12
|
|
Vietnamese-Terminus28x14
|
|
Vietnamese-Terminus32x16
|
|
Vietnamese-TerminusBold14
|
|
Vietnamese-TerminusBold16
|
|
Vietnamese-TerminusBold18x10
|
|
Vietnamese-TerminusBold20x10
|
|
Vietnamese-TerminusBold22x11
|
|
Vietnamese-TerminusBold24x12
|
|
Vietnamese-TerminusBold28x14
|
|
Vietnamese-TerminusBold32x16
|
|
Vietnamese-TerminusBoldVGA14
|
|
Vietnamese-TerminusBoldVGA16
|
|
'
|
|
# fontsets='Arabic-Fixed15
|
|
# Arabic-Fixed16
|
|
# Arabic-VGA14
|
|
# ...
|
|
# Vietnamese-Fixed18
|
|
# '
|
|
|
|
charmaps='ARMSCII-8
|
|
CP1251
|
|
CP1255
|
|
CP1256
|
|
GEORGIAN-ACADEMY
|
|
GEORGIAN-PS
|
|
IBM1133
|
|
ISIRI-3342
|
|
ISO-8859-1
|
|
ISO-8859-10
|
|
ISO-8859-11
|
|
ISO-8859-13
|
|
ISO-8859-14
|
|
ISO-8859-15
|
|
ISO-8859-16
|
|
ISO-8859-2
|
|
ISO-8859-3
|
|
ISO-8859-4
|
|
ISO-8859-5
|
|
ISO-8859-6
|
|
ISO-8859-7
|
|
ISO-8859-8
|
|
ISO-8859-9
|
|
KOI8-R
|
|
KOI8-U
|
|
TIS-620
|
|
VISCII
|
|
UTF-8'
|
|
|
|
# charmaps='ARMSCII-8
|
|
# CP1251
|
|
# CP1255
|
|
# ...
|
|
# UTF-8'
|
|
|
|
## CODESETS ##
|
|
|
|
codesets='guess*Guess optimal character set
|
|
Arabic*. Arabic
|
|
Armenian*# Armenian
|
|
CyrKoi*# Cyrillic - KOI8-R and KOI8-U
|
|
CyrAsia*# Cyrillic - non-Slavic languages
|
|
FullCyrAsia*. Cyrillic - non-Slavic languages (for blind users)
|
|
CyrSlav*# Cyrillic - Slavic languages (also Bosnian and Serbian Latin)
|
|
FullCyrSlav*. Cyrillic - Slavic languages (for blind users)
|
|
Ethiopian*. Ethiopic
|
|
Georgian*# Georgian
|
|
Greek*# Greek
|
|
FullGreek*. Greek (for blind users)
|
|
Hebrew*# Hebrew
|
|
Lao*# Lao
|
|
Lat15*# Latin1 and Latin5 - western Europe and Turkic languages
|
|
Lat2*# Latin2 - central Europe and Romanian
|
|
Lat38*# Latin3 and Latin8 - Chichewa; Esperanto; Irish; Maltese and Welsh
|
|
Lat7*# Latin7 - Lithuanian; Latvian; Maori and Marshallese
|
|
Vietnamese*. Latin - Vietnamese
|
|
Thai*# Thai
|
|
Uni1*. Combined - Latin; Slavic Cyrillic; Hebrew; basic Arabic
|
|
Uni2*. Combined - Latin; Slavic Cyrillic; Greek
|
|
Uni3*. Combined - Latin; Slavic and non-Slavic Cyrillic'
|
|
|
|
db_capb backup
|
|
|
|
which () {
|
|
local IFS
|
|
IFS=:
|
|
for i in $PATH; do
|
|
if [ -f "$i/$1" -a -x "$i/$1" ]; then
|
|
echo "$i/$1"
|
|
return 0
|
|
fi
|
|
done
|
|
return 1
|
|
}
|
|
|
|
available_fontfaces () {
|
|
local prefix
|
|
case "$CODESET" in
|
|
guess) prefix='[^-]*-' ;;
|
|
*) prefix="$CODESET"- ;;
|
|
esac
|
|
echo "$fontsets" | sort | \
|
|
grep "^$prefix" | \
|
|
sed -e "s/^$prefix//" \
|
|
-e 's/[0-9][0-9]*x[0-9][0-9]*$//' \
|
|
-e 's/[0-9]*$//' | \
|
|
sort -n | \
|
|
uniq
|
|
}
|
|
|
|
available_fontsizes () {
|
|
local prefix
|
|
case "$CODESET" in
|
|
guess) prefix='[^-]*-' ;;
|
|
*) prefix="$CODESET"- ;;
|
|
esac
|
|
case "$fontface" in
|
|
guess) prefix="$prefix[^0-9]*" ;;
|
|
*) prefix="$prefix$fontface" ;; # this includes fontface=''
|
|
esac
|
|
echo "$fontsets" \
|
|
| grep "^$prefix[0-9]" \
|
|
| sed -e "s/^$prefix//" \
|
|
| sort -n | uniq \
|
|
| while read x; do
|
|
decode_fontsize "$x"
|
|
done \
|
|
}
|
|
|
|
db_metaget console-setup/framebuffer_only description
|
|
framebuffer_only="$RET"
|
|
decode_fontsize () {
|
|
local a b fbonly
|
|
case "$1" in
|
|
8x*)
|
|
echo 8x${1#*x}
|
|
;;
|
|
*x8)
|
|
echo 8x${1%x*}
|
|
;;
|
|
*x*)
|
|
a=${1#*x}
|
|
b=${1%x*}
|
|
if [ "$a" -lt "$b" ]; then
|
|
echo ${a}x${b} "($framebuffer_only)"
|
|
else
|
|
echo ${b}x${a} "($framebuffer_only)"
|
|
fi
|
|
;;
|
|
*)
|
|
echo 8x$1
|
|
;;
|
|
esac
|
|
}
|
|
|
|
encode_fontsize () {
|
|
echo $1 | sed -e 's/[\, ;].*//'
|
|
}
|
|
|
|
decode_codeset () {
|
|
echo "$codesets" | \
|
|
sed -e 's/^/_/' | \
|
|
grep -F "_$**" | \
|
|
sed -e 's/^_//' | \
|
|
sed 's/.*[*]//'
|
|
}
|
|
|
|
encode_codeset () {
|
|
echo "$codesets" | \
|
|
grep -F "*$*" | \
|
|
sed 's/[*].*//'
|
|
}
|
|
|
|
kernel=unknown
|
|
if which uname >/dev/null; then
|
|
case "`uname`" in
|
|
*Linux*) kernel=linux ;;
|
|
*FreeBSD*) kernel=freebsd ;;
|
|
esac
|
|
fi
|
|
|
|
if which locale 2>/dev/null >/dev/null; then
|
|
eval `locale`
|
|
fi
|
|
|
|
if [ "$LC_CTYPE" -a "$LC_CTYPE" != C ]; then
|
|
locale=$LC_CTYPE
|
|
elif db_get debian-installer/locale && [ "$RET" ]; then
|
|
locale="$RET"
|
|
else
|
|
locale=C
|
|
fi
|
|
|
|
if [ "$locale" = C ]; then
|
|
case "$kernel" in
|
|
freebsd)
|
|
CHARMAP=ISO-8859-15
|
|
;;
|
|
*)
|
|
CHARMAP=UTF-8
|
|
;;
|
|
esac
|
|
charmap_priority=high
|
|
elif which locale 2>/dev/null >/dev/null; then
|
|
CHARMAP=`locale charmap`
|
|
else
|
|
CHARMAP=unknown
|
|
fi
|
|
if echo "$charmaps" | grep "$CHARMAP" >/dev/null; then
|
|
charmap_priority=low
|
|
else
|
|
CHARMAP=UTF-8
|
|
charmap_priority=high
|
|
fi
|
|
|
|
case "$locale" in
|
|
*KOI8*|*koi8*)
|
|
CODESET=CyrKoi
|
|
codeset_priority=low
|
|
;;
|
|
aa_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
af_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
am_*)
|
|
CODESET=Ethiopian
|
|
codeset_priority=low
|
|
;;
|
|
an_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
ar_*)
|
|
CODESET=Arabic
|
|
codeset_priority=low
|
|
;;
|
|
ast_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
az_*)
|
|
CODESET=Uni3
|
|
codeset_priority=low
|
|
;;
|
|
be_*)
|
|
CODESET=CyrSlav
|
|
codeset_priority=low
|
|
;;
|
|
bg_*)
|
|
CODESET=CyrSlav
|
|
codeset_priority=low
|
|
;;
|
|
bn_*)
|
|
CODESET=unsupported
|
|
codeset_priority=low
|
|
;;
|
|
br_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
bs_*)
|
|
CODESET=Uni3
|
|
codeset_priority=low
|
|
;;
|
|
byn_*)
|
|
CODESET=Ethiopian
|
|
codeset_priority=low
|
|
;;
|
|
ca_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
cs_*)
|
|
CODESET=Lat2
|
|
codeset_priority=low
|
|
;;
|
|
cy_*)
|
|
CODESET=Lat38
|
|
codeset_priority=low
|
|
;;
|
|
da_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
de_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
el_*)
|
|
CODESET=Greek
|
|
codeset_priority=low
|
|
;;
|
|
en_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
eo|eo.*|eo_*|eo\@*)
|
|
CODESET=Lat38
|
|
codeset_priority=low
|
|
;;
|
|
es_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
et_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
eu_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
fa_*)
|
|
CODESET=Arabic
|
|
codeset_priority=low
|
|
;;
|
|
fi_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
fo_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
fr_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
ga_*)
|
|
CODESET=Lat38
|
|
codeset_priority=low
|
|
;;
|
|
gd_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
gez_*)
|
|
CODESET=Ethiopian
|
|
codeset_priority=low
|
|
;;
|
|
gl_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
gu_*)
|
|
CODESET=unsupported
|
|
codeset_priority=low
|
|
;;
|
|
gv_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
he_*)
|
|
CODESET=Hebrew
|
|
codeset_priority=low
|
|
;;
|
|
hi_*)
|
|
CODESET=unsupported
|
|
codeset_priority=low
|
|
;;
|
|
hr_*)
|
|
CODESET=Lat2
|
|
codeset_priority=low
|
|
;;
|
|
hu_*)
|
|
CODESET=Lat2
|
|
codeset_priority=low
|
|
;;
|
|
hy_*)
|
|
CODESET=Armenian
|
|
codeset_priority=low
|
|
;;
|
|
id_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
is_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
it_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
iw_*)
|
|
CODESET=Hebrew
|
|
codeset_priority=low
|
|
;;
|
|
ja_*)
|
|
CODESET=unsupported
|
|
codeset_priority=low
|
|
;;
|
|
ka_*)
|
|
CODESET=Georgian
|
|
codeset_priority=low
|
|
;;
|
|
kl_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
kn_*)
|
|
CODESET=unsupported
|
|
codeset_priority=low
|
|
;;
|
|
ko_*)
|
|
CODESET=unsupported
|
|
codeset_priority=low
|
|
;;
|
|
kw_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
lg_*)
|
|
CODESET=Lat15 # TODO: This must be ISO-8859-10 (Latin6)
|
|
codeset_priority=low
|
|
;;
|
|
lo_*)
|
|
CODESET=Lao
|
|
codeset_priority=low
|
|
;;
|
|
lt_*)
|
|
CODESET=Lat7
|
|
codeset_priority=low
|
|
;;
|
|
lv_*)
|
|
CODESET=Lat7
|
|
codeset_priority=low
|
|
;;
|
|
ky_*)
|
|
CODESET=CyrAsia
|
|
codeset_priority=low
|
|
;;
|
|
mi_*)
|
|
CODESET=Lat7
|
|
codeset_priority=low
|
|
;;
|
|
mk_*)
|
|
CODESET=CyrSlav
|
|
codeset_priority=low
|
|
;;
|
|
ml_*)
|
|
CODESET=unsupported
|
|
codeset_priority=low
|
|
;;
|
|
mn_*)
|
|
CODESET=CyrAsia
|
|
codeset_priority=low
|
|
;;
|
|
mr_*)
|
|
CODESET=unsupported
|
|
codeset_priority=low
|
|
;;
|
|
ms_*)
|
|
CODESET=Lat15 # TODO: Is this correct? (Malay language)
|
|
codeset_priority=low
|
|
;;
|
|
mt_*)
|
|
CODESET=Lat38
|
|
codeset_priority=low
|
|
;;
|
|
nb_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
ne_*)
|
|
CODESET=unsupported
|
|
codeset_priority=low
|
|
;;
|
|
nl_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
nn_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
oc_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
om_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
pa_*)
|
|
CODESET=unsupported
|
|
codeset_priority=low
|
|
;;
|
|
pl_*)
|
|
CODESET=Lat2
|
|
codeset_priority=low
|
|
;;
|
|
pt_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
ro_*)
|
|
CODESET=Lat2
|
|
codeset_priority=low
|
|
;;
|
|
ru_*)
|
|
CODESET=CyrSlav
|
|
codeset_priority=low
|
|
;;
|
|
se_*)
|
|
CODESET=Uni1
|
|
codeset_priority=low
|
|
;;
|
|
sid_*)
|
|
CODESET=Lat15 # TODO: Is this correct? (Sidama language)
|
|
codeset_priority=low
|
|
;;
|
|
sk_*)
|
|
CODESET=Lat2
|
|
codeset_priority=low
|
|
;;
|
|
sl_*)
|
|
CODESET=Lat2
|
|
codeset_priority=low
|
|
;;
|
|
so_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
sq_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
sr_*)
|
|
CODESET=CyrSlav
|
|
codeset_priority=low
|
|
;;
|
|
st_*)
|
|
CODESET=Lat15 # TODO: Is this correct? (Sotho language)
|
|
codeset_priority=low
|
|
;;
|
|
sv_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
ta_*)
|
|
CODESET=unsupported
|
|
codeset_priority=low
|
|
;;
|
|
te_*)
|
|
CODESET=unsupported
|
|
codeset_priority=low
|
|
;;
|
|
tg_*)
|
|
CODESET=CyrAsia
|
|
codeset_priority=low
|
|
;;
|
|
th_*)
|
|
CODESET=Thai
|
|
codeset_priority=low
|
|
;;
|
|
ti_*)
|
|
CODESET=Ethiopian
|
|
codeset_priority=low
|
|
;;
|
|
tig_*)
|
|
CODESET=Ethiopian
|
|
codeset_priority=low
|
|
;;
|
|
tl_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
tr_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
tt_*)
|
|
CODESET=Lat15 # TODO: Is this correct? (Tatar language)
|
|
codeset_priority=low
|
|
;;
|
|
uk_*)
|
|
CODESET=CyrSlav
|
|
codeset_priority=low
|
|
;;
|
|
ur_*)
|
|
CODESET=Arabic
|
|
codeset_priority=low
|
|
;;
|
|
uz_*)
|
|
CODESET=Lat15 # TODO: Is this correct? (Uzbek language)
|
|
codeset_priority=low
|
|
;;
|
|
uz_*\@cyrillic)
|
|
CODESET=CyrAsia
|
|
codeset_priority=low
|
|
;;
|
|
vi_*)
|
|
CODESET=Vietnamese
|
|
codeset_priority=low
|
|
;;
|
|
wa_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
xh_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
yi_*)
|
|
CODESET=Hebrew
|
|
codeset_priority=low
|
|
;;
|
|
zh_*)
|
|
CODESET=unsupported
|
|
codeset_priority=low
|
|
;;
|
|
zu_*)
|
|
CODESET=Lat15
|
|
codeset_priority=low
|
|
;;
|
|
*)
|
|
CODESET=guess
|
|
if [ "$CHARMAP" = UTF-8 ]; then
|
|
codeset_priority=high
|
|
else
|
|
# for 8-bit encodings we can guess good codeset
|
|
codeset_priority=low
|
|
fi
|
|
;;
|
|
esac
|
|
if [ "$CODESET" = unsupported ]; then
|
|
CODESET=guess
|
|
fi
|
|
|
|
case "$CODESET" in
|
|
Arabic)
|
|
FONTFACE=VGA
|
|
;;
|
|
Armenian)
|
|
FONTFACE=Fixed
|
|
;;
|
|
CyrAsia)
|
|
FONTFACE=Fixed
|
|
;;
|
|
CyrKoi)
|
|
FONTFACE=VGA
|
|
;;
|
|
CyrSlav)
|
|
FONTFACE=Fixed
|
|
;;
|
|
Ethiopian)
|
|
FONTFACE=Goha
|
|
;;
|
|
Georgian)
|
|
FONTFACE=Fixed
|
|
;;
|
|
Greek)
|
|
FONTFACE=Fixed
|
|
;;
|
|
Hebrew)
|
|
FONTFACE=Fixed
|
|
;;
|
|
Lao)
|
|
FONTFACE=Fixed
|
|
;;
|
|
Lat15)
|
|
;;
|
|
Lat2)
|
|
FONTFACE=Fixed
|
|
;;
|
|
Lat38)
|
|
FONTFACE=Fixed
|
|
;;
|
|
Lat7)
|
|
FONTFACE=Fixed
|
|
;;
|
|
Thai)
|
|
FONTFACE=Fixed
|
|
;;
|
|
Uni1)
|
|
FONTFACE=VGA
|
|
;;
|
|
Uni2)
|
|
FONTFACE=Fixed
|
|
;;
|
|
Uni3)
|
|
FONTFACE=Fixed
|
|
;;
|
|
Vietnamese)
|
|
FONTFACE=Fixed
|
|
;;
|
|
*)
|
|
FONTFACE=Fixed
|
|
;;
|
|
esac
|
|
|
|
if lsmod | grep -q speakup; then
|
|
case "$CODESET" in
|
|
CyrAsia|CyrSlav|Greek)
|
|
CODESET="Full$CODESET"
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
### READ THE DEFAULTS ##################################################
|
|
|
|
# Load the config file, if it exists.
|
|
if [ -e $CONFIGFILE ]; then
|
|
. $CONFIGFILE || true
|
|
fi
|
|
|
|
# Compute default values for the Debconf questions
|
|
|
|
if [ "$CODESET" ]; then
|
|
default_codeset="$(decode_codeset "$CODESET")"
|
|
fi
|
|
|
|
if [ "$FONTFACE" = guess ]; then
|
|
db_metaget console-setup/guess_font description
|
|
default_fontface="$RET"
|
|
elif [ "$FONTFACE" ]; then
|
|
default_fontface="$FONTFACE"
|
|
else
|
|
db_metaget console-setup/use_system_font description
|
|
default_fontface="$RET"
|
|
fi
|
|
|
|
if [ "$FONTSIZE" = guess -a "$FONTFACE" != guess ]; then
|
|
# this combination is currently unsupported
|
|
FONTSIZE=16
|
|
fi
|
|
if [ "$FONTFACE" ]; then
|
|
FONTSIZE=${FONTSIZE:-16}
|
|
fi
|
|
|
|
# Store the default values into debconf db. Workaround #352697.
|
|
db_get console-setup/store_defaults_in_debconf_db
|
|
if [ "$RET" = true ]; then
|
|
db_set console-setup/charmap47 "$CHARMAP"
|
|
db_set console-setup/codeset47 "$default_codeset"
|
|
db_set console-setup/fontface47 "$default_fontface"
|
|
fontsizetext="`decode_fontsize $FONTSIZE`"
|
|
db_set console-setup/fontsize-text47 "$fontsizetext"
|
|
db_set console-setup/fontsize-fb47 "$fontsizetext"
|
|
db_set console-setup/fontsize "$fontsizetext"
|
|
|
|
db_set console-setup/store_defaults_in_debconf_db false
|
|
fi
|
|
|
|
#######################################################################
|
|
|
|
STATE=1
|
|
old_state=0
|
|
while :; do
|
|
starting_state=$STATE
|
|
case "$STATE" in
|
|
1)
|
|
# add commas
|
|
choices=`echo "$charmaps" | sed -e 's/$/,/g' | sort `
|
|
# remove newlines
|
|
choices=`echo $choices | sed -e 's/,$//' `
|
|
db_subst console-setup/charmap47 CHOICES "$choices"
|
|
db_input $charmap_priority console-setup/charmap47 || true
|
|
if db_go; then
|
|
STATE=$(($STATE + 1))
|
|
else
|
|
STATE=$(($STATE - 1))
|
|
fi
|
|
;;
|
|
2)
|
|
db_input $codeset_priority console-setup/codeset47 || true
|
|
if db_go; then
|
|
db_get console-setup/codeset47
|
|
CODESET="$(encode_codeset "$RET")"
|
|
db_set console-setup/codesetcode "$CODESET"
|
|
STATE=$(($STATE + 1))
|
|
else
|
|
STATE=$(($STATE - 1))
|
|
fi
|
|
;;
|
|
3)
|
|
fontfaces=`available_fontfaces`
|
|
# add commas
|
|
choices=`echo "$fontfaces" | sed -e 's/$/,/g'`
|
|
# remove newlines
|
|
choices=`echo $choices | sed -e 's/,$//'`
|
|
db_metaget console-setup/use_system_font description
|
|
choices="$choices, $RET"
|
|
db_metaget console-setup/guess_font description
|
|
choices="$choices, $RET"
|
|
db_subst console-setup/fontface47 CHOICES "$choices"
|
|
db_input medium console-setup/fontface47 || true
|
|
if db_go; then
|
|
STATE=$(($STATE + 1))
|
|
else
|
|
STATE=$(($STATE - 1))
|
|
fi
|
|
db_get console-setup/fontface47
|
|
fontface=$RET
|
|
db_metaget console-setup/use_system_font description
|
|
if [ "$fontface" = "$RET" ]; then
|
|
fontface=''
|
|
fi
|
|
db_metaget console-setup/guess_font description
|
|
if [ "$fontface" = "$RET" ]; then
|
|
fontface=guess
|
|
fi
|
|
;;
|
|
4)
|
|
if [ "$kernel" = freebsd ]; then
|
|
db_set console-setup/fontsize "$FONTSIZE"
|
|
# skip the question without making Debconf loop
|
|
STATE=$(( $STATE + $STATE - $old_state ))
|
|
else
|
|
fontsizes=`available_fontsizes`
|
|
# add commas
|
|
choices=`echo "$fontsizes" | sed -e 's/$/,/g' `
|
|
# remove newlines and the last comma
|
|
choices=`echo $choices | sed -e 's/,$//'`
|
|
if [ -n "$choices" -a "$FONTSIZE" != guess ]; then
|
|
if echo "$choices" | grep -q x; then
|
|
size_template=console-setup/fontsize-fb47
|
|
else
|
|
size_template=console-setup/fontsize-text47
|
|
fi
|
|
db_subst $size_template CHOICES "$choices"
|
|
db_input medium $size_template || true
|
|
if db_go; then
|
|
STATE=$(($STATE + 1))
|
|
else
|
|
STATE=$(($STATE - 1))
|
|
fi
|
|
db_get $size_template
|
|
FONTSIZE=`encode_fontsize "$RET"`
|
|
else
|
|
FONTSIZE=${choices:+guess}
|
|
STATE=$(( $STATE + $STATE - $old_state ))
|
|
fi
|
|
db_set console-setup/fontsize "$FONTSIZE"
|
|
fi
|
|
;;
|
|
*)
|
|
break
|
|
;;
|
|
esac
|
|
old_state=$starting_state
|
|
done
|
|
|
|
if [ $STATE -eq 0 ]; then
|
|
exit 10
|
|
fi
|
|
|
|
exit 0
|