Blob Blame History Raw
#!/bin/sh +x
# Kernel build can have many thousands of modules.
# kmod.prov is run for every one of them.
# Try to make this script run as fast as we can.
# For example, use shell string ops instead of external programs
# where possible.

IFS=$'\n'

read -r fname || exit

# Only process files from .../lib/modules/... subtree
[ "${fname#*/lib/modules/*}" != "$fname" ] || exit 0

kmod=${fname##*/}  # like basename, but faster

if [ "$kmod" = "modules.builtin" ]; then
        for j in $(cat -- "$fname"); do
                echo "kmod(${j##*/})"
        done
        exit 0
fi

kmod=${kmod%.gz}
kmod=${kmod%.xz}
if [ "${kmod%.ko}" != "$kmod" ]; then
        echo "kmod($kmod)"
fi