diff options
author | Ville Skyttä <ville.skytta@iki.fi> | 2011-12-21 23:49:51 +0200 |
---|---|---|
committer | Ville Skyttä <ville.skytta@iki.fi> | 2011-12-21 23:49:51 +0200 |
commit | 2622723ae917e7f4adfb1357aa1d187f50657a96 (patch) | |
tree | 6e1c0d2f8a3b1b292bd45b9c03834fe6feb910d1 | |
parent | e6bef775a5d3ff44c646d0929776d85121ed0554 (diff) | |
download | bash-completion-2622723ae917e7f4adfb1357aa1d187f50657a96.tar.gz |
udevadm: New completion.
-rw-r--r-- | completions/Makefile.am | 1 | ||||
-rw-r--r-- | completions/udevadm | 76 | ||||
-rw-r--r-- | test/completion/udevadm.exp | 1 | ||||
-rw-r--r-- | test/lib/completions/udevadm.exp | 20 |
4 files changed, 98 insertions, 0 deletions
diff --git a/completions/Makefile.am b/completions/Makefile.am index 43a59553..70cc7cad 100644 --- a/completions/Makefile.am +++ b/completions/Makefile.am @@ -299,6 +299,7 @@ bashcomp_DATA = a2x \ tcpnice \ tracepath \ tune2fs \ + udevadm \ umount \ umount.linux \ unace \ diff --git a/completions/udevadm b/completions/udevadm new file mode 100644 index 00000000..e8db7142 --- /dev/null +++ b/completions/udevadm @@ -0,0 +1,76 @@ +# udevadm(8) completion -*- shell-script -*- + +_udevadm() +{ + local cur prev words cword split + _init_completion -s || return + + local i udevcmd + for (( i=1; i < cword; i++ )); do + if [[ ${words[i]} != -* ]]; then + udevcmd=${words[i]} + break + fi + done + + case $prev in + --help|--version|--property|--children-max|--timeout|--seq-start|\ + --seq-end|--attr-match|--attr-nomatch|--parent-match|--property-match|\ + --tag-match|--subsystem-match|--subsystem-nomatch|--sysname-match|\ + --path) + return + ;; + --log-priority) + COMPREPLY=( $( compgen -W 'err info debug' -- "$cur" ) ) + return + ;; + --query) + COMPREPLY=( $( compgen -W 'name symlink path property all' \ + -- "$cur" ) ) + return + ;; + --name) + cur=${cur:=/dev/} + _filedir + return + ;; + --device-id-of-file|--exit-if-exists) + _filedir + return + ;; + --action) + COMPREPLY=( $( compgen -W 'add change remove' -- "$cur" ) ) + return + ;; + --type) + COMPREPLY=( $( compgen -W 'devices subsystems failed' -- "$cur" ) ) + return + ;; + esac + + $split && return + + if [[ -z $udevcmd ]]; then + case $cur in + -*) + COMPREPLY=( $( compgen -W '--help --version --debug' -- \ + "$cur" ) ) + ;; + *) + COMPREPLY=( $( compgen -W "$( "$1" --help 2>/dev/null | + awk '/^[[:space:]]+/ { print $1 }' )" -- "$cur" ) ) + ;; + esac + return + fi + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W \ + '$( "$1" $udevcmd --help 2>/dev/null | _parse_help - )' \ + -- "$cur" ) ) + [[ $COMPREPLY == *= ]] && compopt -o nospace + fi +} && +complete -F _udevadm udevadm + +# ex: ts=4 sw=4 et filetype=sh diff --git a/test/completion/udevadm.exp b/test/completion/udevadm.exp new file mode 100644 index 00000000..69c980ff --- /dev/null +++ b/test/completion/udevadm.exp @@ -0,0 +1 @@ +assert_source_completions udevadm diff --git a/test/lib/completions/udevadm.exp b/test/lib/completions/udevadm.exp new file mode 100644 index 00000000..bef16f0b --- /dev/null +++ b/test/lib/completions/udevadm.exp @@ -0,0 +1,20 @@ +proc setup {} { + save_env +} + + +proc teardown {} { + assert_env_unmodified +} + + +setup + + +assert_complete_any "udevadm " + + +sync_after_int + + +teardown |