first, search for all files, then call dracut_install only once
# 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
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
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
}