Skip to content

Commit

Permalink
fix(i18n): handle symlinked keymap
Browse files Browse the repository at this point in the history
handle keymaps that are symlinks to others, for example:

KEYMAP=de-nodeadkeys in vconsole.conf is:

lrwxrwxrwx 1 root root 20 17. Mai 2023  /usr/share/kbd/keymaps/xkb/de-nodeadkeys.map.gz -> at-nodeadkeys.map.gz
  • Loading branch information
tblume committed Jan 23, 2024
1 parent 4980bad commit 5f3ef87
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions modules.d/10i18n/module-setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ install() {
MAPNAME=${1%.map*}

mapfile -t -d '' MAPS < <(
find "${dracutsysrootdir}${kbddir}"/keymaps/ -type f \( -name "${MAPNAME}" -o -name "${MAPNAME}.map*" \) -print0
find "${dracutsysrootdir}${kbddir}"/keymaps/ -type f,l \( -name "${MAPNAME}" -o -name "${MAPNAME}.map*" \) -print0
)
fi

Expand Down Expand Up @@ -160,6 +160,7 @@ install() {
install_local_i18n() {
local map
local maplink
# shellcheck disable=SC2086
eval "$(gather_vars ${i18n_vars})"
Expand Down Expand Up @@ -216,7 +217,17 @@ install() {
done
for keymap in "${!KEYMAPS[@]}"; do
inst_opt_decompress "${keymap}"
if [[ -L ${keymap} ]]; then
maplink=$(readlink -f "${keymap}")
# skip symlinked directories
[[ -d ${maplink} ]] && continue
inst_opt_decompress "$(readlink -f "${keymap}")"
# create new symlink to decompressed keymap
ln -srn "${initdir}${maplink%.gz}" "${initdir}${keymap%.gz}"
else
inst_opt_decompress "${keymap}"
fi
done
inst_opt_decompress "${kbddir}"/consolefonts/"${DEFAULT_FONT}".*
Expand Down

0 comments on commit 5f3ef87

Please sign in to comment.