contrib/zsh-completion/_terraforming
#compdef terraforming
function _terraforming() {
local context curcontext=$curcontext state line
typeset -A opt_args
local ret=1
_arguments -C \
'1: :__terraforming_sub_commands' \
'*:: :->args' \
&& ret=0
case $state in
(args)
case $words[1] in
(help)
_arguments -C \
'1: :__terraforming_sub_commands' \
'(-)*:: :->null_state' \
&& ret=0
;;
(*)
_arguments -C \
'--merge=[(TFSTATE) tfstate file to merge]:tfstate file to merge:_files' \
'--overwrite[Overwrite existing tfstate]' \
'--no-overwrite[Do not overwrite existing tfstate]' \
'--tfstate[Generate tfstate]' \
'--no-tfstate[Do not generate tfstate]' \
'--profile[(PROFILE) AWS credentials profile]:AWS credentials profile:__profiles' \
&& ret=0
;;
esac
;;
esac
return ret
}
__terraforming_sub_commands() {
local -a _c
_c=(
"${(@f)$(terraforming --help \
| grep ' terraforming' \
| sed -E 's/^ terraforming //g' \
| sed -E 's/ *(\[COMMAND\])? *# /:/g')}"
)
_describe -t commands terraforming_sub_commands _c
}
__profiles() {
local _profile_path="${HOME}/.aws/credentials"
local -a _profiles
_profiles=(
${(@f)"$(_call_program profiles \
"grep -E '^\[.*\]$' "$_profile_path" \
| sed -e 's/\[//' -e 's/\]//'")"}
)
_describe -t profiles Profiles _profiles
}
_terraforming "$@"