]> git.ipfire.org Git - thirdparty/dracut-ng.git/commitdiff
refactor(dracut-functions): use array in _detect_library_directories main
authorBenjamin Drung <benjamin.drung@canonical.com>
Wed, 1 Apr 2026 14:20:51 +0000 (16:20 +0200)
committerNeal Gompa (ニール・ゴンパ) <ngompa13@gmail.com>
Thu, 9 Apr 2026 23:54:25 +0000 (19:54 -0400)
Use an array for `libdirs` to fix the shellcheck complaint.

dracut-functions.sh

index 8d4785ddae22270beb7dfecc27ca7acf6a29dbcd..d617acd8d85683c5d28fca012ec69176740dc323 100755 (executable)
@@ -1509,23 +1509,23 @@ determine_kernel_image() {
 }
 
 _detect_library_directories() {
 }
 
 _detect_library_directories() {
-    local libdirs=""
+    local -a libdirs=()
+    local line
 
     if [[ $($DRACUT_INSTALL ${dracutsysrootdir:+-r "$dracutsysrootdir"} --dry-run -R "$DRACUT_TESTBIN") == */lib64/* ]] &> /dev/null \
         && [[ -d "${dracutsysrootdir-}/lib64" ]]; then
 
     if [[ $($DRACUT_INSTALL ${dracutsysrootdir:+-r "$dracutsysrootdir"} --dry-run -R "$DRACUT_TESTBIN") == */lib64/* ]] &> /dev/null \
         && [[ -d "${dracutsysrootdir-}/lib64" ]]; then
-        libdirs+=" /lib64"
-        [[ -d "${dracutsysrootdir-}/usr/lib64" ]] && libdirs+=" /usr/lib64"
+        libdirs+=("/lib64")
+        [[ -d "${dracutsysrootdir-}/usr/lib64" ]] && libdirs+=("/usr/lib64")
     fi
 
     if [[ -d "${dracutsysrootdir-}/lib" ]]; then
     fi
 
     if [[ -d "${dracutsysrootdir-}/lib" ]]; then
-        libdirs+=" /lib"
-        [[ -d "${dracutsysrootdir-}/usr/lib" ]] && libdirs+=" /usr/lib"
+        libdirs+=("/lib")
+        [[ -d "${dracutsysrootdir-}/usr/lib" ]] && libdirs+=("/usr/lib")
     fi
 
     fi
 
-    # shellcheck disable=SC2046  # word splitting is wanted, libraries must not contain spaces
-    libdirs+="$(printf ' %s' $(ldconfig_paths))"
+    while IFS='' read -r line; do libdirs+=("$line"); done < <(ldconfig_paths)
 
 
-    echo "${libdirs}"
+    echo "${libdirs[@]}"
 }
 
 if ! _is_func dinfo > /dev/null 2>&1; then
 }
 
 if ! _is_func dinfo > /dev/null 2>&1; then