summaryrefslogtreecommitdiffstats
path: root/completions/_udevadm
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--completions/_udevadm77
1 files changed, 77 insertions, 0 deletions
diff --git a/completions/_udevadm b/completions/_udevadm
new file mode 100644
index 0000000..19624be
--- /dev/null
+++ b/completions/_udevadm
@@ -0,0 +1,77 @@
+# 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 [[ ! -v udevcmd ]]; then
+ case $cur in
+ -*)
+ COMPREPLY=($(compgen -W '--help --version --debug' -- "$cur"))
+ ;;
+ *)
+ COMPREPLY=($(compgen -W "$("$1" --help 2>/dev/null |
+ awk '/^[ \t]/ { 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: filetype=sh