From 51d63c7556b5de04420dad4951c97199607f9b27 Mon Sep 17 00:00:00 2001 From: Dave Reisner Date: Fri, 3 Jun 2011 10:29:55 -0400 Subject: functions: refactor auto_modules sort/uniq the modaliases files' contents, before passing _all_ of them to modprobe -a. This cuts back on execution time as well as cleaning up the resulting list of modules. Signed-off-by: Dave Reisner --- functions | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'functions') diff --git a/functions b/functions index 4cd3136..f179135 100644 --- a/functions +++ b/functions @@ -41,16 +41,13 @@ in_array() { auto_modules () { - aliases="$(find /sys/devices/ -name modalias -exec cat {} +)" - mods="" - for a in $aliases; do - m="$(modprobe --set-version ${KERNELVERSION} --resolve-alias "$a")" - [ -n "$m" ] && mods="$mods $m" - done + IFS=$'\n' read -rd '' -a mods < \ + <(find /sys/devices -name modalias -exec sort -zu {} + | + xargs -0 modprobe -aRS "$KERNELVERSION" | + sort -u) - echo "${mods}" | tr '-' '_' - [ -z "${mods}" ] && return 1 - return 0 + printf "%s\n" "${mods[@]//-/_}" + (( ${#mods[*]} )) } all_modules () -- cgit v1.2.3-24-g4f1b