github.com/xsb/terraform@v0.6.13-0.20160314145438-fe415c2f09d7/contrib/zsh-completion/_terraform (about) 1 #compdef terraform 2 3 local -a _terraform_cmds 4 _terraform_cmds=( 5 'apply:Builds or changes infrastructure' 6 'destroy:Destroy Terraform-managed infrastructure' 7 'get:Download and install modules for the configuration' 8 'graph:Create a visual graph of Terraform resources' 9 'init:Initializes Terraform configuration from a module' 10 'output:Read an output from a state file' 11 'plan:Generate and show an execution plan' 12 'pull:Refreshes the local state copy from the remote server' 13 'push:Uploads the local state to the remote server' 14 'refresh:Update local state file against real resources' 15 'remote:Configures remote state management' 16 'taint:Manually forcing a destroy and recreate on the next plan/apply' 17 'show:Inspect Terraform state or plan' 18 'version:Prints the Terraform version' 19 ) 20 21 __apply() { 22 _arguments \ 23 '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]' \ 24 '-input=[(true) Ask for input for variables if not directly set.]' \ 25 '-no-color[If specified, output will not contain any color.]' \ 26 '-refresh=[(true) Update state prior to checking for differences. This has no effect if a plan file is given to apply.]' \ 27 '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]' \ 28 '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]' \ 29 '-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \ 30 '-var-file=[(path) Set variables in the Terraform configuration from a file. If "terraform.tfvars" is present, it will be automatically loaded if this flag is not specified.]' 31 } 32 33 __destroy() { 34 _arguments \ 35 '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]' \ 36 '-force[Do not ask for input for destroy confirmation.]' \ 37 '-no-color[If specified, output will not contain any color.]' \ 38 '-refresh=[(true) Update state prior to checking for differences. This has no effect if a plan file is given to apply.]' \ 39 '-state=[Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]' \ 40 '-state-out=[Path to write state to that is different than "-state". This can be used to preserve the old state.]' \ 41 '-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \ 42 '-var-file=[(path) Set variables in the Terraform configuration from a file. If "terraform.tfvars" is present, it will be automatically loaded if this flag is not specified.]' 43 } 44 45 __get() { 46 _arguments \ 47 '-update=[(false) If true, modules already downloaded will be checked for updates and updated if necessary.]' 48 } 49 50 __graph() { 51 _arguments \ 52 '-module-depth=[(n) The maximum depth to expand modules. By default this is -1, which will expand all modules.]' 53 } 54 55 __init() { 56 _arguments \ 57 '-address=[(url) URL of the remote storage server. Required for HTTP backend, optional for Atlas and Consul.]' \ 58 '-access-token=[(token) Authentication token for state storage server. Required for Atlas backend, optional for Consul.]' \ 59 '-backend=[(atlas) Specifies the type of remote backend. Must be one of Atlas, Consul, or HTTP. Defaults to atlas.]' \ 60 '-name=[(name) Name of the state file in the state storage server. Required for Atlas backend.]' \ 61 '-path=[(path) Path of the remote state in Consul. Required for the Consul backend.]' 62 } 63 64 __output() { 65 _arguments \ 66 '-state=[(path) Path to the state file to read. Defaults to "terraform.tfstate".]' 67 } 68 69 __plan() { 70 _arguments \ 71 '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with" .backup" extension. Set to "-" to disable backup.]' \ 72 '-destroy[If set, a plan will be generated to destroy all resources managed by the given configuration and state.]' \ 73 '-input=[(true) Ask for input for variables if not directly set.]' \ 74 '-module-depth=[(n) Specifies the depth of modules to show in the output. This does not affect the plan itself, only the output shown. By default, this is -1, which will expand all.]' \ 75 '-no-color[If specified, output will not contain any color.]' \ 76 '-out=[(path) Write a plan file to the given path. This can be used as input to the "apply" command.]' \ 77 '-refresh=[(true) Update state prior to checking for differences.]' \ 78 '-state=[(statefile) Path to a Terraform state file to use to look up Terraform-managed resources. By default it will use the state "terraform.tfstate" if it exists.]' \ 79 '-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \ 80 '-var-file=[(path) Set variables in the Terraform configuration from a file. If "terraform.tfvars" is present, it will be automatically loaded if this flag is not specified.]' 81 } 82 83 __push() { 84 _arguments \ 85 '-force[Forces the upload of the local state, ignoring any conflicts. This should be used carefully, as force pushing can cause remote state information to be lost.]' 86 } 87 88 __refresh() { 89 _arguments \ 90 '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]' \ 91 '-input=[(true) Ask for input for variables if not directly set.]' \ 92 '-no-color[If specified, output will not contain any color.]' \ 93 '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]' \ 94 '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]' \ 95 '-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \ 96 '-var-file=[(path) Set variables in the Terraform configuration from a file. If "terraform.tfvars" is present, it will be automatically loaded if this flag is not specified.]' 97 } 98 99 __taint() { 100 _arguments \ 101 '-allow-missing[If specified, the command will succeed (exit code 0) even if the resource is missing.]' \ 102 '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]' \ 103 '-module=[(path) The module path where the resource lives. By default this will be root. Child modules can be specified by names. Ex. "consul" or "consul.vpc" (nested modules).]' \ 104 '-no-color[If specified, output will not contain any color.]' \ 105 '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]' \ 106 '-state-out=[(path) Path to write updated state file. By default, the "-state" path will be used.]' 107 } 108 109 __remote() { 110 _arguments \ 111 '-address=[(url) URL of the remote storage server. Required for HTTP backend, optional for Atlas and Consul.]' \ 112 '-access-token=[(token) Authentication token for state storage server. Required for Atlas backend, optional for Consul.]' \ 113 '-backend=[(atlas) Specifies the type of remote backend. Must be one of Atlas, Consul, or HTTP. Defaults to atlas.]' \ 114 '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]' \ 115 '-disable[Disables remote state management and migrates the state to the -state path.]' \ 116 '-name=[(name) Name of the state file in the state storage server. Required for Atlas backend.]' \ 117 '-path=[(path) Path of the remote state in Consul. Required for the Consul backend.]' \ 118 '-pull=[(true) Controls if the remote state is pulled before disabling. This defaults to true to ensure the latest state is cached before disabling.]' \ 119 '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]' 120 } 121 122 __show() { 123 _arguments \ 124 '-module-depth=[(n) The maximum depth to expand modules. By default this is -1, which will expand all modules.]' \ 125 '-no-color[If specified, output will not contain any color.]' 126 } 127 128 _arguments '*:: :->command' 129 130 if (( CURRENT == 1 )); then 131 _describe -t commands "terraform command" _terraform_cmds 132 return 133 fi 134 135 local -a _command_args 136 case "$words[1]" in 137 apply) 138 __apply ;; 139 destroy) 140 __destroy ;; 141 get) 142 __get ;; 143 graph) 144 __graph ;; 145 init) 146 __init ;; 147 output) 148 __output ;; 149 plan) 150 __plan ;; 151 push) 152 __push ;; 153 refresh) 154 __refresh ;; 155 remote) 156 __remote ;; 157 show) 158 __show ;; 159 taint) 160 __taint ;; 161 esac