77 lines
3.2 KiB
Text
77 lines
3.2 KiB
Text
#compdef cdist
|
|
|
|
_cdist()
|
|
{
|
|
local curcontext="$curcontext" state line
|
|
typeset -A opt_args
|
|
|
|
_arguments \
|
|
'1: :->opts_cmds'\
|
|
'*: :->opts'
|
|
|
|
case $state in
|
|
opts_cmds)
|
|
_arguments '1:Options and commands:(banner config install inventory preos shell trigger -h --help -q --quiet -v --verbose -V --version)'
|
|
;;
|
|
*)
|
|
case $words[2] in
|
|
-*)
|
|
opts=(-h --help -q --quiet -v --verbose -V --version)
|
|
compadd "$@" -- $opts
|
|
;;
|
|
banner)
|
|
opts=(-h --help -q --quiet -v --verbose)
|
|
compadd "$@" -- $opts
|
|
;;
|
|
shell)
|
|
case $words[3] in
|
|
-s|--shell)
|
|
shells=($(grep -v '^#' /etc/shells))
|
|
compadd "$@" -- $shells
|
|
;;
|
|
*)
|
|
opts=(-h --help -q --quiet -v --verbose -s --shell)
|
|
compadd "$@" -- $opts
|
|
;;
|
|
esac
|
|
;;
|
|
config|install)
|
|
opts=(-h --help -q --quiet -v --verbose -a --all -b --beta -C --cache-path-pattern -c --conf-dir -f --file -i --initial-manifest -j --jobs -n --dry-run -o --out-dir -p --parallel -r --remote-out-dir -s --sequential --remote-copy --remote-exec -t --tag -I --inventory -A --all-tagged)
|
|
compadd "$@" -- $opts
|
|
;;
|
|
inventory)
|
|
case $words[3] in
|
|
list)
|
|
opts=(-h --help -q --quiet -v --verbose -b --beta -I --inventory -a --all -f --file -H --host-only -t --tag)
|
|
compadd "$@" -- $opts
|
|
;;
|
|
add-host)
|
|
opts=(-h --help -q --quiet -v --verbose -b --beta -I --inventory -f --file)
|
|
compadd "$@" -- $opts
|
|
;;
|
|
del-host)
|
|
opts=(-h --help -q --quiet -v --verbose -b --beta -I --inventory -a --all -f --file)
|
|
compadd "$@" -- $opts
|
|
;;
|
|
add-tag)
|
|
opts=(-h --help -q --quiet -v --verbose -b --beta -I --inventory -f --file -T --tag-file -t --taglist)
|
|
compadd "$@" -- $opts
|
|
;;
|
|
del-tag)
|
|
opts=(-h --help -q --quiet -v --verbose -b --beta -I --inventory -a --all -f --file -T --tag-file -t --taglist)
|
|
compadd "$@" -- $opts
|
|
;;
|
|
*)
|
|
cmds=(list add-host del-host add-tag del-tag)
|
|
opts=(-h --help -q --quiet -v --verbose)
|
|
compadd "$@" -- $cmds $opts
|
|
;;
|
|
esac
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
esac
|
|
}
|
|
|
|
_cdist "$@"
|