diff options
Diffstat (limited to 'completions/modinfo')
-rw-r--r-- | completions/modinfo | 21 |
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 |