summaryrefslogtreecommitdiff
path: root/oh-my-zsh/plugins/terraform
diff options
context:
space:
mode:
Diffstat (limited to 'oh-my-zsh/plugins/terraform')
-rw-r--r--oh-my-zsh/plugins/terraform/README.md43
-rw-r--r--oh-my-zsh/plugins/terraform/terraform.plugin.zsh23
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