summaryrefslogtreecommitdiff
path: root/completions/modinfo
diff options
context:
space:
mode:
Diffstat (limited to 'completions/modinfo')
-rw-r--r--completions/modinfo21
1 files changed, 12 insertions, 9 deletions
diff --git a/completions/modinfo b/completions/modinfo
index 28f19308..c151fad4 100644
--- a/completions/modinfo
+++ b/completions/modinfo
@@ -2,31 +2,34 @@
_modinfo()
{
- local cur prev words cword
- _init_completion || return
+ local cur prev words cword split
+ _init_completion -s || return
case "$prev" in
- -F|--field)
- COMPREPLY=( $( compgen -W 'alias author depends description
+ --field|-!(-*)F)
+ COMPREPLY=( $(compgen -W 'alias author depends description
filename firmware license parm srcversion staging vermagic
- version' -- "${cur,,}" ) )
+ version' -- "${cur,,}") )
return
;;
- -k)
+ --set-version|-!(-*)k)
_kernel_versions
return
;;
esac
+ $split && return
+
if [[ "$cur" == -* ]]; then
- COMPREPLY=( $( compgen -W '-V --version -F --field -k -0 --null -a -d
- -l -p -n' -- "$cur" ) )
+ local opts=$(_parse_help "$1")
+ COMPREPLY=( $(compgen -W '${opts:-$(_parse_usage "$1")}' -- "$cur") )
+ [[ $COMPREPLY == *= ]] && compopt -o nospace
return
fi
local i version=$(uname -r)
for (( i=${#words[@]}-1; i>0; i-- )); do
- if [[ ${words[i]} == -k ]]; then
+ if [[ ${words[i]} == -@(!(-*)k*|-set-version) ]]; then
version=${words[i+1]}
break
fi