blob: b13b73136a3d223febfe075d87c312df454ab5e8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
# bash completion for sudo(8) -*- shell-script -*-
_sudo()
{
local cur prev words cword
_init_completion || return
local i mode=normal
[[ $1 == *sudoedit ]] && mode=edit
[[ $mode == normal ]] &&
for (( i=1; i <= COMP_CWORD; i++ )); do
if [[ ${COMP_WORDS[i]} != -* ]]; then
local PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin
local root_command=${COMP_WORDS[i]}
_command_offset $i
return
fi
if [[ ${COMP_WORDS[i]} == -e ]]; then
mode=edit
break
fi
[[ ${COMP_WORDS[i]} == -@(u|U|g|C|p) ]] && ((i++))
done
case "$prev" in
-u|-U)
COMPREPLY=( $( compgen -u -- "$cur" ) )
return
;;
-g)
COMPREPLY=( $( compgen -g -- "$cur" ) )
return
;;
-C|-p)
# argument required but no completions available
return
;;
esac
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '-A -b -C -E -e -g -H -h -i -K -k -L -l -ll
-n -P -p -S -s -U -u -V -v' -- "$cur" ) )
return
fi
if [[ $mode == edit ]]; then
_filedir
fi
} && complete -F _sudo sudo sudoedit
# ex: ts=4 sw=4 et filetype=sh
|