From: Harald Hoyer Date: Wed, 31 Mar 2021 08:01:18 +0000 (+0200) Subject: fix(kernel-modules): shellcheck regression X-Git-Tag: 054~140 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1dc61299f7dfeba8a863e6a575e5ddc204420677;p=thirdparty%2Fdracut.git fix(kernel-modules): shellcheck regression `$_hostonly_drvs` contained multiple arguments and was quoted. This patch converts `_hostonly_drvs` into an associative array, which enables easy deduplication and proper quoting in bash. Fixes: https://github.com/dracutdevs/dracut/issues/1276 --- diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh index bbafb289a..1a1b56a29 100755 --- a/modules.d/90kernel-modules/module-setup.sh +++ b/modules.d/90kernel-modules/module-setup.sh @@ -3,7 +3,7 @@ # called by dracut installkernel() { local _blockfuncs='ahci_platform_get_resources|ata_scsi_ioctl|scsi_add_host|blk_cleanup_queue|register_mtd_blktrans|scsi_esp_register|register_virtio_device|usb_stor_disconnect|mmc_add_host|sdhci_add_host|scsi_add_host_with_dma' - local _hostonly_drvs + local -A _hostonly_drvs find_kernel_modules_external() { local a @@ -17,14 +17,14 @@ installkernel() { record_block_dev_drv() { for _mod in $(get_dev_module /dev/block/"$1"); do - [[ " $_hostonly_drvs " != *$_mod* ]] && _hostonly_drvs+=" $_mod" + _hostonly_drvs["$_mod"]="$_mod" done - [[ "$_hostonly_drvs" ]] && return 0 + ((${#_hostonly_drvs[@]} > 0)) && return 0 return 1 } install_block_modules_strict() { - hostonly='' instmods "$_hostonly_drvs" + hostonly='' instmods "${_hostonly_drvs[@]}" } install_block_modules() {