102 lines
3.5 KiB
Bash
102 lines
3.5 KiB
Bash
_cdist()
|
|
{
|
|
local cur prev prevprev opts cmds projects
|
|
COMPREPLY=()
|
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
|
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
|
prevprev="${COMP_WORDS[COMP_CWORD-2]}"
|
|
opts="-h --help -q --quiet -v --verbose -V --version"
|
|
cmds="banner config install inventory preos shell"
|
|
|
|
case "${prevprev}" in
|
|
shell)
|
|
case "${prev}" in
|
|
-s|--shell)
|
|
shells=$(grep -v '^#' /etc/shells)
|
|
COMPREPLY=( $(compgen -W "${shells}" -- ${cur}) )
|
|
return 0
|
|
;;
|
|
esac
|
|
;;
|
|
inventory)
|
|
case "${prev}" in
|
|
list)
|
|
opts="-h --help -q --quiet -v --verbose -b --beta \
|
|
-I --invento/y -a --all -f --file -H --host-only \
|
|
-t --tag"
|
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
|
return 0
|
|
;;
|
|
add-host)
|
|
opts="-h --help -q --quiet -v --verbose -b --beta \
|
|
-I --inventory -f --file"
|
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
|
return 0
|
|
;;
|
|
del-host)
|
|
opts="-h --help -q --quiet -v --verbose -b --beta \
|
|
-I --inventory -a --all -f --file"
|
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
|
return 0
|
|
;;
|
|
add-tag)
|
|
opts="-h --help -q --quiet -v --verbose -b --beta \
|
|
-I --inventory -f --file -T --tag-file -t --taglist"
|
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
|
return 0
|
|
;;
|
|
del-tag)
|
|
opts="-h --help -q --quiet -v --verbose -b --beta \
|
|
-I --inventory -a --all -f --file -T --tag-file -t --taglist"
|
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
|
return 0
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
|
|
case "${prev}" in
|
|
-*)
|
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
|
return 0
|
|
;;
|
|
banner)
|
|
opts="-h --help -q --quiet -v --verbose"
|
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
|
return 0
|
|
;;
|
|
shell)
|
|
opts="-h --help -q --quiet -v --verbose -s --shell"
|
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
|
return 0
|
|
;;
|
|
config|install)
|
|
opts="-h --help -q --quiet -v --verbose -b --beta \
|
|
-I --inventory -C --cache-path-pattern -c --conf-dir \
|
|
-f --file -i --initial-manifest -A --all-tagged \
|
|
-j --jobs -n --dry-run -o --out-dir -p --parallel \
|
|
-r --remote-out-dir \
|
|
-s --sequential --remote-copy --remote-exec -t --tag -a --all"
|
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
|
return 0
|
|
;;
|
|
inventory)
|
|
cmds="list add-host del-host add-tag del-tag"
|
|
opts="-h --help -q --quiet -v --verbose"
|
|
COMPREPLY=( $(compgen -W "${opts} ${cmds}" -- ${cur}) )
|
|
return 0
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
|
|
if [[ ${cur} == -* ]]; then
|
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
|
return 0
|
|
fi
|
|
|
|
COMPREPLY=( $(compgen -W "${cmds}" -- ${cur}) )
|
|
return 0
|
|
}
|
|
|
|
complete -F _cdist cdist
|