From: Harald Hoyer Date: Tue, 16 Feb 2021 14:16:41 +0000 (+0100) Subject: fix(i18n): get rid of `eval` calls X-Git-Tag: 053~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5387ed24c8b33da1214232d57ab1831e117aaba0;p=thirdparty%2Fdracut.git fix(i18n): get rid of `eval` calls By changing KBDSUBDIRS to a bash array, all kinds of `eval` quirks are avoided. --- 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