modprobe: Try parsing help before using hardcoding option list

This commit is contained in:
Ville Skyttä 2014-06-09 09:28:51 +03:00
parent 454f67a047
commit c6ec8f979b
2 changed files with 20 additions and 10 deletions

View File

@ -2,10 +2,13 @@
_modprobe() _modprobe()
{ {
local cur prev words cword local cur prev words cword split
_init_completion || return _init_completion -s || return
case "$prev" in case "$prev" in
-h|--help|-V|--version)
return
;;
-C|--config) -C|--config)
_filedir _filedir
return return
@ -20,13 +23,20 @@ _modprobe()
;; ;;
esac esac
$split && return
if [[ "$cur" == -* ]]; then if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '-a --all -b --use-blacklist -C --config -c COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) )
--showconfig --dump-modversions -d --dirname --first-time if [[ ! $COMPREPLY ]]; then
--force-vermagic --force-modversion -f --force -i --ignore-install COMPREPLY=( $( compgen -W '-a --all -b --use-blacklist -C --config
--ignore-remove -l --list -n --dry-run -q --quiet -R -c --showconfig --dump-modversions -d --dirname --first-time
--resolve-alias -r --remove -S --set-version --show-depends -s --force-vermagic --force-modversion -f --force -i
--syslog -t --type -V --version -v --verbose' -- "$cur" ) ) --ignore-install --ignore-remove -l --list -n --dry-run -q
--quiet -R --resolve-alias -r --remove -S --set-version
--show-depends -s --syslog -t --type -V --version -v
--verbose' -- "$cur" ) )
fi
[[ $COMPREPLY == *= ]] && compopt -o nospace
return return
fi fi

View File

@ -11,8 +11,8 @@ proc teardown {} {
setup setup
set test "--remov<TAB> should complete \"--remove\"" set test "--al<TAB> should complete \"--all\""
assert_complete "--remove" "modprobe --remov" $test assert_complete "--all" "modprobe --al" $test
sync_after_int sync_after_int