summaryrefslogtreecommitdiff
path: root/completions/_udevadm
diff options
context:
space:
mode:
Diffstat (limited to 'completions/_udevadm')
-rw-r--r--completions/_udevadm79
1 files changed, 79 insertions, 0 deletions
diff --git a/completions/_udevadm b/completions/_udevadm
new file mode 100644
index 00000000..51ec0e5d
--- /dev/null
+++ b/completions/_udevadm
@@ -0,0 +1,79 @@
+# udevadm(8) completion -*- shell-script -*-
+
+# Use of this file is deprecated. Upstream completion is available in
+# systemd >= 196, use that instead.
+
+_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