mirror of
https://gitlab.archlinux.org/tpowa/archboot.git
synced 2024-09-20 03:50:37 +02:00
new faster _filter_mods
This commit is contained in:
parent
c6ec5f1c52
commit
9ac4072b09
2 changed files with 6 additions and 19 deletions
|
@ -29,6 +29,7 @@ fi
|
|||
_KERNELVERSION="$(_kver "${_KERNEL}")"
|
||||
_MODULE_DIR="/lib/modules/${_KERNELVERSION}"
|
||||
[[ -d "${_MODULE_DIR}" ]] || _abort "${_MODULE_DIR} is not a valid kernel module directory!"
|
||||
_ALL_MODS="$(find "${_MODULE_DIR}" -name '*.ko*' 2>"${_NO_LOG}")"
|
||||
_BUILD_DIR="$(_init_rootfs "${_KERNELVERSION}" "${_TARGET_DIR}")" || exit 1
|
||||
_ROOTFS="${_TARGET_DIR:-${_BUILD_DIR}/root}"
|
||||
if [[ -n "${_GENERATE_IMAGE}" ]]; then
|
||||
|
|
|
@ -82,25 +82,11 @@ modinfo -k ${_KERNELVERSION} --field firmware $(cut -d ' ' -f1 </proc/modules) |
|
|||
}
|
||||
|
||||
_filter_mods() {
|
||||
# Add modules to the rootfs, filtered by grep.
|
||||
# $@: filter arguments to grep
|
||||
# -f FILTER: ERE to filter found modules
|
||||
local -i _COUNT=0
|
||||
_MOD_INPUT="" OPTIND="" OPTARG="" _MOD_FILTER=()
|
||||
while getopts ':f:' _FLAG; do
|
||||
[[ "${_FLAG}" = "f" ]] && _MOD_FILTER+=("$OPTARG")
|
||||
done
|
||||
shift $(( OPTIND - 1 ))
|
||||
# shellcheck disable=SC2154
|
||||
while read -r -d '' _MOD_INPUT; do
|
||||
(( ++_COUNT ))
|
||||
for f in "${_MOD_FILTER[@]}"; do
|
||||
[[ "${_MOD_INPUT}" =~ $f ]] && continue 2
|
||||
done
|
||||
_MOD_INPUT="${_MOD_INPUT##*/}" _MOD_INPUT="${_MOD_INPUT%.ko*}"
|
||||
printf '%s\n' "${_MOD_INPUT}"
|
||||
done < <(find "${_MODULE_DIR}" -name '*.ko*' -print0 2>"${_NO_LOG}" | grep -EZz "$@")
|
||||
(( _COUNT ))
|
||||
if [[ -z "${2}" ]]; then
|
||||
grep -E "${1}" <<<"$_ALL_MODS"
|
||||
else
|
||||
grep -E "${3}" <<<"$_ALL_MODS" | grep -v -E "${2}"
|
||||
fi
|
||||
}
|
||||
|
||||
_all_mods() {
|
||||
|
|
Loading…
Reference in a new issue