summaryrefslogtreecommitdiff
path: root/plugins/terraform
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/terraform')
-rw-r--r--plugins/terraform/README.md45
-rw-r--r--plugins/terraform/terraform.plugin.zsh20
2 files changed, 42 insertions, 23 deletions
diff --git a/plugins/terraform/README.md b/plugins/terraform/README.md
index 9e9f0cdfb..474346dc0 100644
--- a/plugins/terraform/README.md
+++ b/plugins/terraform/README.md
@@ -1,14 +1,7 @@
-## Terraform oh-my-zsh plugin
+# Terraform plugin
Plugin for Terraform, a tool from Hashicorp for managing infrastructure safely and efficiently.
-
-Current as of Terraform v0.13
-
-### Requirements
-
- * [Terraform](https://terraform.io/)
-
-### Usage
+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:
@@ -16,14 +9,34 @@ To use it, add `terraform` to the plugins array of your `~/.zshrc` file:
plugins=(... terraform)
```
- * Type `terraform` into your prompt and hit `TAB` to see available completion options
- * Type `tf` into your prompt as a short alias to `terraform`
+## Requirements
-### Expanding ZSH prompt with current Terraform workspace name
+* [Terraform](https://terraform.io/)
-If you want to get current Terraform workspace name in your ZSH prompt open
-your .zsh-theme file and in a chosen place insert:
+## Aliases
-```shell
-PROMPT=$'%{$fg[white]%}$(tf_prompt_info)%{$reset_color%} '
+| Alias | Command |
+| ----- | -------------------- |
+| `tf` | `terraform` |
+| `tfa` | `terraform apply` |
+| `tfd` | `terraform destroy` |
+| `tff` | `terraform fmt` |
+| `tfi` | `terraform init` |
+| `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/plugins/terraform/terraform.plugin.zsh b/plugins/terraform/terraform.plugin.zsh
index 997241c9a..f224b79f0 100644
--- a/plugins/terraform/terraform.plugin.zsh
+++ b/plugins/terraform/terraform.plugin.zsh
@@ -1,11 +1,17 @@
function tf_prompt_info() {
- # dont show 'default' workspace in home dir
- [[ "$PWD" == ~ ]] && return
- # check if in terraform dir
- if [[ -d .terraform && -r .terraform/environment ]]; then
- workspace=$(cat .terraform/environment) || return
- echo "[${workspace}]"
- fi
+ # 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 tfp='terraform plan'
+alias tfv='terraform validate'