From 0bc58b66a4850cdb8458a86c3d9a2fc81de82aa3 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 28 Apr 2024 11:14:42 +0200 Subject: Adding upstream version 1:2.11. Signed-off-by: Daniel Baumann --- completions/sudo | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 completions/sudo (limited to 'completions/sudo') diff --git a/completions/sudo b/completions/sudo new file mode 100644 index 0000000..c9a806b --- /dev/null +++ b/completions/sudo @@ -0,0 +1,56 @@ +# bash completion for sudo(8) -*- shell-script -*- + +_sudo() +{ + local cur prev words cword split + _init_completion -s || return + + local i mode=normal + [[ $1 == *sudoedit ]] && mode=edit + + [[ $mode == normal ]] && + for ((i = 1; i <= cword; i++)); do + if [[ ${words[i]} != -* ]]; then + local PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin + local root_command=${words[i]} + _command_offset $i + return + fi + if [[ ${words[i]} == -@(!(-*)e*|-edit) ]]; then + mode=edit + break + fi + [[ ${words[i]} == \ + -@(user|other-user|group|close-from|prompt|!(-*)[uUgCp]) ]] && + ((i++)) + done + + case "$prev" in + --user | --other-user | -!(-*)[uU]) + COMPREPLY=($(compgen -u -- "$cur")) + return + ;; + --group | -!(-*)g) + COMPREPLY=($(compgen -g -- "$cur")) + return + ;; + --close-from | --prompt | -!(-*)[Cp]) + return + ;; + esac + + $split && return + + if [[ $cur == -* ]]; then + local opts=$(_parse_help "$1") + COMPREPLY=($(compgen -W '${opts:-$(_parse_usage "$1")}' -- "$cur")) + [[ ${COMPREPLY-} == *= ]] && compopt -o nospace + return + fi + if [[ $mode == edit ]]; then + _filedir + fi +} && + complete -F _sudo sudo sudoedit + +# ex: filetype=sh -- cgit v1.2.3