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