summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--functions15
1 files changed, 6 insertions, 9 deletions
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 ()