fix(i18n): shellcheck for modules.d/10i18n
parent
2b5ddc7722
commit
00ca6bed37
|
@ -2,8 +2,8 @@
|
|||
|
||||
[ -n "$DRACUT_SYSTEMD" ] && exit 0
|
||||
|
||||
if [ -x $systemdutildir/systemd-vconsole-setup ]; then
|
||||
$systemdutildir/systemd-vconsole-setup "$@"
|
||||
if [ -x "$systemdutildir"/systemd-vconsole-setup ]; then
|
||||
"$systemdutildir"/systemd-vconsole-setup "$@"
|
||||
fi
|
||||
|
||||
[ -e /etc/vconsole.conf ] && . /etc/vconsole.conf
|
||||
|
@ -23,10 +23,10 @@ set_terminal() {
|
|||
|
||||
if [ "${UNICODE}" = 1 ]; then
|
||||
printf '\033%%G' >&7
|
||||
stty -F ${dev} iutf8
|
||||
stty -F "${dev}" iutf8
|
||||
else
|
||||
printf '\033%%@' >&7
|
||||
stty -F ${dev} -iutf8
|
||||
stty -F "${dev}" -iutf8
|
||||
fi
|
||||
}
|
||||
|
||||
|
@ -41,19 +41,15 @@ set_keymap() {
|
|||
|
||||
[ "${UNICODE}" = 1 ] && utf_switch=-u
|
||||
|
||||
# shellcheck disable=SC2086
|
||||
loadkeys -q ${utf_switch} ${KEYMAP} ${EXT_KEYMAPS}
|
||||
}
|
||||
|
||||
set_font() {
|
||||
local dev=$1
|
||||
local trans=''
|
||||
local uni=''
|
||||
|
||||
[ -z "${FONT}" ] && FONT=${DEFAULT_FONT}
|
||||
[ -n "${FONT_MAP}" ] && trans="-m ${FONT_MAP}"
|
||||
[ -n "${FONT_UNIMAP}" ] && uni="-u ${FONT_UNIMAP}"
|
||||
|
||||
setfont ${FONT} -C ${dev} ${trans} ${uni}
|
||||
setfont "${FONT-${DEFAULT_FONT}}" \
|
||||
-C "${1}" \
|
||||
${FONT_MAP:+-m "${FONT_MAP}"} \
|
||||
${FONT_UNIMAP:+-u "${FONT_UNIMAP}"}
|
||||
}
|
||||
|
||||
dev_close() {
|
||||
|
@ -64,19 +60,18 @@ dev_close() {
|
|||
dev_open() {
|
||||
local dev=$1
|
||||
|
||||
exec 6< ${dev} \
|
||||
&& exec 7>> ${dev}
|
||||
exec 6< "${dev}" \
|
||||
&& exec 7>> "${dev}"
|
||||
}
|
||||
|
||||
dev=/dev/${1#/dev/}
|
||||
devname=${dev#/dev/}
|
||||
|
||||
[ -c "${dev}" ] || {
|
||||
echo "Usage: $0 device" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
dev_open ${dev}
|
||||
dev_open "${dev}"
|
||||
|
||||
for fd in 6 7; do
|
||||
if ! [ -t ${fd} ]; then
|
||||
|
@ -87,8 +82,8 @@ for fd in 6 7; do
|
|||
done
|
||||
|
||||
set_keyboard
|
||||
set_terminal ${dev}
|
||||
set_font ${dev}
|
||||
set_terminal "${dev}"
|
||||
set_font "${dev}"
|
||||
set_keymap
|
||||
|
||||
dev_close
|
||||
|
|
|
@ -16,9 +16,12 @@ depends() {
|
|||
|
||||
# called by dracut
|
||||
install() {
|
||||
declare -A KEYMAPS
|
||||
|
||||
if dracut_module_included "systemd"; then
|
||||
unset FONT
|
||||
unset KEYMAP
|
||||
# shellcheck disable=SC1090
|
||||
[[ -f "$dracutsysrootdir"/etc/vconsole.conf ]] && . "$dracutsysrootdir"/etc/vconsole.conf
|
||||
fi
|
||||
|
||||
|
@ -27,26 +30,43 @@ install() {
|
|||
I18N_CONF="/etc/locale.conf"
|
||||
VCONFIG_CONF="/etc/vconsole.conf"
|
||||
|
||||
# This is from 10redhat-i18n.
|
||||
findkeymap() {
|
||||
local MAPS=$1
|
||||
local MAPNAME=${1%.map*}
|
||||
local map
|
||||
[[ ! -f $dracutsysrootdir$MAPS ]] \
|
||||
&& MAPS=$(find $dracutsysrootdir${kbddir}/keymaps -type f -name ${MAPNAME} -o -name ${MAPNAME}.map -o -name ${MAPNAME}.map.\*)
|
||||
# shellcheck disable=SC2064
|
||||
trap "$(shopt -p nullglob globstar)" RETURN
|
||||
shopt -q -s nullglob globstar
|
||||
|
||||
for map in $MAPS; do
|
||||
KEYMAPS="$KEYMAPS $map "
|
||||
case $map in
|
||||
*.gz) cmd="zgrep" ;;
|
||||
*.bz2) cmd="bzgrep" ;;
|
||||
*) cmd="grep" ;;
|
||||
local -a MAPS
|
||||
local MAPNAME
|
||||
local INCLUDES
|
||||
local MAP
|
||||
local CMD
|
||||
local FN
|
||||
|
||||
if [[ -f $dracutsysrootdir$1 ]]; then
|
||||
MAPS=("$1")
|
||||
else
|
||||
MAPNAME=${1%.map*}
|
||||
MAPS=("$dracutsysrootdir""${kbddir}"/keymaps/**/"${MAPNAME}"{,.map{,.*}})
|
||||
fi
|
||||
|
||||
for MAP in "${MAPS[@]}"; do
|
||||
[[ -f $MAP ]] || continue
|
||||
[[ -v KEYMAPS["$MAP"] ]] && continue
|
||||
|
||||
KEYMAPS["$MAP"]=1
|
||||
|
||||
case "$MAP" in
|
||||
*.gz) CMD="zgrep" ;;
|
||||
*.bz2) CMD="bzgrep" ;;
|
||||
*) CMD="grep" ;;
|
||||
esac
|
||||
|
||||
for INCL in $($cmd "^include " $map | while read _ a _ || [ -n "$a" ]; do echo ${a//\"/}; done); do
|
||||
for FN in $(find $dracutsysrootdir${kbddir}/keymaps -type f -name $INCL\*); do
|
||||
readarray -t INCLUDES < <("$CMD" '^include ' "$MAP" | while read -r _ a _ || [ -n "$a" ]; do echo "${a//\"/}"; done)
|
||||
|
||||
for INCL in "${INCLUDES[@]}"; do
|
||||
for FN in "$dracutsysrootdir""${kbddir}"/keymaps/**/"$INCL"*; do
|
||||
[[ -f $FN ]] || continue
|
||||
strstr "$KEYMAPS" " $FN " || findkeymap $FN
|
||||
[[ -v KEYMAPS["$FN"] ]] || findkeymap "$FN"
|
||||
done
|
||||
done
|
||||
done
|
||||
|
@ -84,15 +104,16 @@ install() {
|
|||
|
||||
# FIXME: double check
|
||||
# shellcheck disable=SC2068
|
||||
for item in $@; do
|
||||
item=(${item/:/ })
|
||||
for item in "$@"; do
|
||||
read -r -a item <<< "${item/:/ }"
|
||||
for map in ${item[1]//,/ }; do
|
||||
map=(${map//-/ })
|
||||
read -r -a map <<< "${map//-/ }"
|
||||
if [[ -f "$dracutsysrootdir${item[0]}" ]]; then
|
||||
value=$(grep "^${map[0]}=" "$dracutsysrootdir${item[0]}")
|
||||
value=${value#*=}
|
||||
echo "${map[1]:-${map[0]}}=${value}"
|
||||
fi
|
||||
unset map
|
||||
done
|
||||
done
|
||||
}
|
||||
|
@ -101,8 +122,8 @@ install() {
|
|||
inst_multiple setfont loadkeys kbd_mode stty
|
||||
|
||||
if ! dracut_module_included "systemd"; then
|
||||
inst ${moddir}/console_init.sh /lib/udev/console_init
|
||||
inst_rules ${moddir}/10-console.rules
|
||||
inst "${moddir}"/console_init.sh /lib/udev/console_init
|
||||
inst_rules "${moddir}"/10-console.rules
|
||||
inst_hook cmdline 20 "${moddir}/parse-i18n.sh"
|
||||
fi
|
||||
|
||||
|
@ -115,7 +136,7 @@ install() {
|
|||
}
|
||||
|
||||
install_all_kbd() {
|
||||
local rel f
|
||||
local _src _line
|
||||
|
||||
for _src in "${KBDSUBDIRS[@]}"; do
|
||||
inst_dir "${kbddir}/$_src"
|
||||
|
@ -126,12 +147,12 @@ install() {
|
|||
rm -f -- "${initdir}${kbddir}/consoletrans/utflist"
|
||||
find "${initdir}${kbddir}/" -name README\* -delete
|
||||
find "${initdir}${kbddir}/" -name '*.gz' -print -quit \
|
||||
| while read line || [ -n "$line" ]; do
|
||||
| while read -r _line || [ -n "$_line" ]; do
|
||||
inst_multiple gzip
|
||||
done
|
||||
|
||||
find "${initdir}${kbddir}/" -name '*.bz2' -print -quit \
|
||||
| while read line || [ -n "$line" ]; do
|
||||
| while read -r _line || [ -n "$_line" ]; do
|
||||
inst_multiple bzip2
|
||||
done
|
||||
}
|
||||
|
@ -139,9 +160,12 @@ install() {
|
|||
install_local_i18n() {
|
||||
local map
|
||||
|
||||
eval $(gather_vars ${i18n_vars})
|
||||
[ -f $dracutsysrootdir$I18N_CONF ] && . $dracutsysrootdir$I18N_CONF
|
||||
[ -f $dracutsysrootdir$VCONFIG_CONF ] && . $dracutsysrootdir$VCONFIG_CONF
|
||||
# shellcheck disable=SC2086
|
||||
eval "$(gather_vars ${i18n_vars})"
|
||||
# shellcheck disable=SC1090
|
||||
[ -f "$dracutsysrootdir"$I18N_CONF ] && . "$dracutsysrootdir"$I18N_CONF
|
||||
# shellcheck disable=SC1090
|
||||
[ -f "$dracutsysrootdir"$VCONFIG_CONF ] && . "$dracutsysrootdir"$VCONFIG_CONF
|
||||
|
||||
shopt -q -s nocasematch
|
||||
if [[ ${UNICODE} ]]; then
|
||||
|
@ -183,48 +207,48 @@ install() {
|
|||
return 1
|
||||
}
|
||||
|
||||
findkeymap ${KEYMAP}
|
||||
findkeymap "${KEYMAP}"
|
||||
|
||||
for map in ${EXT_KEYMAPS}; do
|
||||
ddebug "Adding extra map: ${map}"
|
||||
findkeymap ${map}
|
||||
findkeymap "${map}"
|
||||
done
|
||||
|
||||
for keymap in ${KEYMAPS}; do
|
||||
inst_opt_decompress ${keymap}
|
||||
for keymap in "${!KEYMAPS[@]}"; do
|
||||
inst_opt_decompress "${keymap}"
|
||||
done
|
||||
|
||||
inst_opt_decompress ${kbddir}/consolefonts/${DEFAULT_FONT}.*
|
||||
inst_opt_decompress "${kbddir}"/consolefonts/"${DEFAULT_FONT}".*
|
||||
|
||||
if [[ ${FONT} ]] && [[ ${FONT} != ${DEFAULT_FONT} ]]; then
|
||||
if [[ ${FONT} ]] && [[ ${FONT} != "${DEFAULT_FONT}" ]]; then
|
||||
FONT=${FONT%.psf*}
|
||||
inst_opt_decompress ${kbddir}/consolefonts/${FONT}.*
|
||||
inst_opt_decompress "${kbddir}"/consolefonts/"${FONT}".*
|
||||
fi
|
||||
|
||||
if [[ ${FONT_MAP} ]]; then
|
||||
FONT_MAP=${FONT_MAP%.trans}
|
||||
# There are three different formats that setfont supports
|
||||
inst_simple ${kbddir}/consoletrans/${FONT_MAP} \
|
||||
|| inst_simple ${kbddir}/consoletrans/${FONT_MAP}.trans \
|
||||
|| inst_simple ${kbddir}/consoletrans/${FONT_MAP}_to_uni.trans \
|
||||
inst_simple "${kbddir}"/consoletrans/"${FONT_MAP}" \
|
||||
|| inst_simple "${kbddir}"/consoletrans/"${FONT_MAP}".trans \
|
||||
|| inst_simple "${kbddir}"/consoletrans/"${FONT_MAP}"_to_uni.trans \
|
||||
|| dwarn "Could not find FONT_MAP ${FONT_MAP}!"
|
||||
fi
|
||||
|
||||
if [[ ${FONT_UNIMAP} ]]; then
|
||||
FONT_UNIMAP=${FONT_UNIMAP%.uni}
|
||||
inst_simple ${kbddir}/unimaps/${FONT_UNIMAP}.uni
|
||||
inst_simple "${kbddir}"/unimaps/"${FONT_UNIMAP}".uni
|
||||
fi
|
||||
|
||||
if dracut_module_included "systemd" && [[ -f $dracutsysrootdir${I18N_CONF} ]]; then
|
||||
inst_simple ${I18N_CONF}
|
||||
else
|
||||
mksubdirs ${initdir}${I18N_CONF}
|
||||
print_vars LC_ALL LANG >> ${initdir}${I18N_CONF}
|
||||
mksubdirs "${initdir}"${I18N_CONF}
|
||||
print_vars LC_ALL LANG >> "${initdir}"${I18N_CONF}
|
||||
fi
|
||||
|
||||
if ! dracut_module_included "systemd"; then
|
||||
mksubdirs ${initdir}${VCONFIG_CONF}
|
||||
print_vars KEYMAP EXT_KEYMAPS UNICODE FONT FONT_MAP FONT_UNIMAP >> ${initdir}${VCONFIG_CONF}
|
||||
mksubdirs "${initdir}"${VCONFIG_CONF}
|
||||
print_vars KEYMAP EXT_KEYMAPS UNICODE FONT FONT_MAP FONT_UNIMAP >> "${initdir}"${VCONFIG_CONF}
|
||||
fi
|
||||
|
||||
return 0
|
||||
|
|
Loading…
Reference in New Issue