diff options
Diffstat (limited to 'plugins/opentofu/opentofu.plugin.zsh')
| -rw-r--r-- | plugins/opentofu/opentofu.plugin.zsh | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/plugins/opentofu/opentofu.plugin.zsh b/plugins/opentofu/opentofu.plugin.zsh new file mode 100644 index 000000000..b7a3ba3b6 --- /dev/null +++ b/plugins/opentofu/opentofu.plugin.zsh @@ -0,0 +1,46 @@ +# set up the tofu completion (compatible for zsh) +autoload -Uz bashcompinit && bashcompinit +complete -C tofu tofu + +# tofu workspace prompt function +function tofu_prompt_info() { + # only show the workspace name if we're in an opentofu project + # i.e. if a .terraform directory exists within the hierarchy + local dir="$PWD" + while [[ ! -d "${dir}/.terraform" ]]; do + [[ "$dir" != / ]] || return 0 # stop at the root directory + dir="${dir:h}" # get the parent directory + done + + # workspace might be different than the .terraform/environment file + # for example, if set with the TF_WORKSPACE environment variable + local workspace="$(tofu workspace show)" + # make sure to escape % signs in the workspace name to prevent command injection + echo "${ZSH_THEME_TOFU_PROMPT_PREFIX-[}${workspace:gs/%/%%}${ZSH_THEME_TOFU_PROMPT_SUFFIX-]}" +} + +# tofu version prompt function +function tofu_version_prompt_info() { + # get the output of `tofu --version` in a single line, and get the second word after splitting by a space + local tofu_version=${${(s: :)$(tofu --version)}[2]} + # make sure to escape % signs in the version string to prevent command injection + echo "${ZSH_THEME_TOFU_VERSION_PROMPT_PREFIX-[}${tofu_version:gs/%/%%}${ZSH_THEME_TOFU_VERSION_PROMPT_SUFFIX-]}" +} + +alias tt='tofu' +alias tta='tofu apply' +alias tta!='tofu apply -auto-approve' +alias ttc='tofu console' +alias ttd='tofu destroy' +alias ttd!='tofu destroy -auto-approve' +alias ttf='tofu fmt' +alias ttfr='tofu fmt -recursive' +alias tti='tofu init' +alias tto='tofu output' +alias ttp='tofu plan' +alias ttv='tofu validate' +alias tts='tofu state' +alias ttsh='tofu show' +alias ttr='tofu refresh' +alias ttt='tofu test' +alias ttws='tofu workspace' |
