From 5387ed24c8b33da1214232d57ab1831e117aaba0 Mon Sep 17 00:00:00 2001 From: Harald Hoyer Date: Tue, 16 Feb 2021 15:16:41 +0100 Subject: [PATCH] fix(i18n): get rid of `eval` calls By changing KBDSUBDIRS to a bash array, all kinds of `eval` quirks are avoided. --- modules.d/10i18n/module-setup.sh | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh index b55804ea5..d6688b47b 100755 --- a/modules.d/10i18n/module-setup.sh +++ b/modules.d/10i18n/module-setup.sh @@ -22,7 +22,7 @@ install() { [[ -f "$dracutsysrootdir"/etc/vconsole.conf ]] && . "$dracutsysrootdir"/etc/vconsole.conf fi - KBDSUBDIRS=consolefonts,consoletrans,keymaps,unimaps + KBDSUBDIRS=(consolefonts consoletrans keymaps unimaps) DEFAULT_FONT="${i18n_default_font:-eurlatgr}" I18N_CONF="/etc/locale.conf" VCONFIG_CONF="/etc/vconsole.conf" @@ -110,7 +110,7 @@ install() { if [[ ${kbddir} != "/usr/share" ]]; then inst_dir /usr/share - for _src in $(eval echo "{${KBDSUBDIRS}}"); do + for _src in "${KBDSUBDIRS[@]}"; do [ ! -e "${initdir}/usr/share/${_src}" ] && ln -s "${kbddir}/${_src}" "${initdir}/usr/share/${_src}" done fi @@ -119,10 +119,9 @@ install() { install_all_kbd() { local rel f - for __src in $(eval echo $dracutsysrootdir${kbddir}/{${KBDSUBDIRS}}); do - _src=${__src#$dracutsysrootdir} - inst_dir "$_src" - $DRACUT_CP -L -t "${initdir}/${_src}" "$__src"/* + for _src in "${KBDSUBDIRS[@]}"; do + inst_dir "${kbddir}/$_src" + $DRACUT_CP -L -t "${initdir}/${kbddir}/$_src" "${dracutsysrootdir}${kbddir}/$_src"/* done # remove unnecessary files @@ -242,14 +241,13 @@ install() { } checks() { - for kbddir in ${kbddir} /usr/lib/kbd /lib/kbd /usr/share /usr/share/kbd - do - [[ -d "$dracutsysrootdir${kbddir}" ]] && \ - for dir in ${KBDSUBDIRS//,/ } - do - [[ -d "$dracutsysrootdir${kbddir}/${dir}" ]] && continue - false - done && break + for kbddir in ${kbddir} /usr/lib/kbd /lib/kbd /usr/share /usr/share/kbd; do + if [[ -d "$dracutsysrootdir${kbddir}" ]]; then + for dir in "${KBDSUBDIRS[@]}"; do + [[ -d "$dracutsysrootdir${kbddir}/${dir}" ]] && continue + false + done && break + fi kbddir='' done -- 2.47.3