From: Kairui Song Date: Tue, 6 Dec 2022 09:24:47 +0000 (+0800) Subject: feat(dracut-init.sh): introduce a new helper require_kernel_modules X-Git-Tag: 058~14 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d3a5e6312a84b29bcb10fd5d28e1314f1acbc78f;p=thirdparty%2Fdracut.git feat(dracut-init.sh): introduce a new helper require_kernel_modules Some dracut modules won't work without certain kernel modules, this helper will be helpful for checking such kernel configs in check() and error out early. Signed-off-by: Kairui Song --- diff --git a/dracut-init.sh b/dracut-init.sh index c89f7e80e..c86ab45aa 100755 --- a/dracut-init.sh +++ b/dracut-init.sh @@ -150,6 +150,28 @@ require_any_binary() { return 0 } +# helper function for check() in module-setup.sh +# to check for required kernel modules +# issues a standardized warning message +require_kernel_modules() { + # shellcheck disable=SC2154 + local _module_name="${moddir##*/}" + local _ret=0 + + if [[ $1 == "-m" ]]; then + _module_name="$2" + shift 2 + fi + + for mod in "$@"; do + if ! check_kernel_module "$mod" &> /dev/null; then + dinfo "dracut module '${_module_name#[0-9][0-9]}' will not be installed, because kernel module '$mod' is not available!" + ((_ret++)) + fi + done + return "$_ret" +} + dracut_need_initqueue() { : > "$initdir/lib/dracut/need-initqueue" }