diff options
Diffstat (limited to 'oh-my-zsh/plugins/terraform')
-rw-r--r-- | oh-my-zsh/plugins/terraform/README.md | 43 | ||||
-rw-r--r-- | oh-my-zsh/plugins/terraform/terraform.plugin.zsh | 23 |
2 files changed, 66 insertions, 0 deletions
diff --git a/oh-my-zsh/plugins/terraform/README.md b/oh-my-zsh/plugins/terraform/README.md new file mode 100644 index 0000000..59c6e7f --- /dev/null +++ b/oh-my-zsh/plugins/terraform/README.md @@ -0,0 +1,43 @@ +# Terraform plugin + +Plugin for Terraform, a tool from Hashicorp for managing infrastructure safely and efficiently. +It adds completion for `terraform`, as well as aliases and a prompt function. + +To use it, add `terraform` to the plugins array of your `~/.zshrc` file: + +```shell +plugins=(... terraform) +``` + +## Requirements + +* [Terraform](https://terraform.io/) + +## Aliases + +| Alias | Command | +| ----- | -------------------- | +| `tf` | `terraform` | +| `tfa` | `terraform apply` | +| `tfd` | `terraform destroy` | +| `tff` | `terraform fmt` | +| `tfi` | `terraform init` | +| `tfo` | `terraform output` | +| `tfp` | `terraform plan` | +| `tfv` | `terraform validate` | + +## Prompt function + +You can add the current Terraform workspace in your prompt by adding `$(tf_prompt_info)` +to your `PROMPT` or `RPROMPT` variable. + +```sh +RPROMPT='$(tf_prompt_info)' +``` + +You can also specify the PREFIX and SUFFIX for the workspace with the following variables: + +```sh +ZSH_THEME_TF_PROMPT_PREFIX="%{$fg[white]%}" +ZSH_THEME_TF_PROMPT_SUFFIX="%{$reset_color%}" +``` diff --git a/oh-my-zsh/plugins/terraform/terraform.plugin.zsh b/oh-my-zsh/plugins/terraform/terraform.plugin.zsh new file mode 100644 index 0000000..eaa1e2e --- /dev/null +++ b/oh-my-zsh/plugins/terraform/terraform.plugin.zsh @@ -0,0 +1,23 @@ +function tf_prompt_info() { + # dont show 'default' workspace in home dir + [[ "$PWD" != ~ ]] || return + # check if in terraform dir and file exists + [[ -d .terraform && -r .terraform/environment ]] || return + + local workspace="$(< .terraform/environment)" + echo "${ZSH_THEME_TF_PROMPT_PREFIX-[}${workspace:gs/%/%%}${ZSH_THEME_TF_PROMPT_SUFFIX-]}" +} + +alias tf='terraform' +alias tfa='terraform apply' +alias tfd='terraform destroy' +alias tff='terraform fmt' +alias tfi='terraform init' +alias tfo='terraform output' +alias tfp='terraform plan' +alias tfv='terraform validate' + +if (( $+commands[terraform] )); then + autoload -U +X bashcompinit && bashcompinit + complete -o nospace -C terraform terraform +fi |