45 lines
1.1 KiB
Bash
45 lines
1.1 KiB
Bash
# Linux modinfo(8) completion -*- shell-script -*-
|
|
|
|
_modinfo()
|
|
{
|
|
local cur prev words cword
|
|
_init_completion || return
|
|
|
|
case "$prev" in
|
|
-F|--field)
|
|
COMPREPLY=( $( compgen -W 'alias author depends description
|
|
filename firmware license parm srcversion staging vermagic
|
|
version' -- "${cur,,}" ) )
|
|
return
|
|
;;
|
|
-k)
|
|
_kernel_versions
|
|
return
|
|
;;
|
|
esac
|
|
|
|
if [[ "$cur" == -* ]]; then
|
|
COMPREPLY=( $( compgen -W '-V --version -F --field -k -0 --null -a -d
|
|
-l -p -n' -- "$cur" ) )
|
|
return
|
|
fi
|
|
|
|
local i version=$(uname -r)
|
|
for (( i=${#words[@]}-1; i>0; i-- )); do
|
|
if [[ ${words[i]} == -k ]]; then
|
|
version=${words[i+1]}
|
|
break
|
|
fi
|
|
done
|
|
|
|
# do filename completion if we're giving a path to a module
|
|
if [[ "$cur" == @(*/|[.~])* ]]; then
|
|
_filedir '@(?(k)o?(.gz))'
|
|
else
|
|
_modules $version
|
|
fi
|
|
} &&
|
|
complete -F _modinfo modinfo
|
|
|
|
# ex: ts=4 sw=4 et filetype=sh
|