]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
dracut-functions.sh:inst_libdir_files() combine installs
authorHarald Hoyer <harald@redhat.com>
Wed, 27 Jun 2012 07:38:26 +0000 (09:38 +0200)
committerHarald Hoyer <harald@redhat.com>
Fri, 29 Jun 2012 10:41:27 +0000 (12:41 +0200)
first, search for all files, then call dracut_install only once

dracut-functions.sh

index fd133b8318ab69d431c5c6cd47e667df2de20c4e..d53ec7b676285b5530d1654520ca4baac2e222d6 100755 (executable)
@@ -744,6 +744,7 @@ dracut_install() {
 # Install a <file> located on a lib directory to the initramfs image
 # -n <pattern> install matching files
 inst_libdir_file() {
+    local _files
     if [[ "$1" == "-n" ]]; then
         local _pattern=$2
         shift 2
@@ -751,7 +752,7 @@ inst_libdir_file() {
             for _i in "$@"; do
                 for _f in "$_dir"/$_i; do
                     [[ "$_f" =~ $_pattern ]] || continue
-                    [[ -e "$_f" ]] && dracut_install "$_f"
+                    [[ -e "$_f" ]] && _files+="$_f "
                 done
             done
         done
@@ -759,11 +760,12 @@ inst_libdir_file() {
         for _dir in $libdirs; do
             for _i in "$@"; do
                 for _f in "$_dir"/$_i; do
-                    [[ -e "$_f" ]] && dracut_install "$_f"
+                    [[ -e "$_f" ]] && _files+="$_f "
                 done
             done
         done
     fi
+    [[ $_files ]] && dracut_install $_files
 }