-
Notifications
You must be signed in to change notification settings - Fork 7
/
tabcomplete
49 lines (45 loc) · 1.18 KB
/
tabcomplete
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
###########################
# dcs-get tab completion #
###########################
shopt -s progcomp
complete -F _tabcomp dcs-get
_tabcomp()
{
local cur prev opts base
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
opts="$(dcs-get commands)"
case ${#COMP_WORDS[@]} in
2)
COMPREPLY=($(compgen -W "${opts}" -- ${cur}))
return 0
;;
3)
first="${COMP_WORDS[1]}"
case "$first" in
install | i)
COMPREPLY=( $(compgen -W '$(dcs-get simple-list)' -- ${cur}) )
return 0
;;
gensymlinks | g | package | p | reinstall | p | upload | u)
COMPREPLY=( $(compgen -W '$(ls /var/tmp/dcs-get/ | grep -)' -- ${cur}) )
return 0
;;
*)
return 0
;;
esac
;;
*)
if [ ${COMP_WORDS[1]} == install ]; then
COMPREPLY=( $(compgen -W '$(dcs-get simple-list)' -- ${cur}) )
fi
return 0
;;
esac
return 0
}
######################
# END tab completion #
######################