feat(opentofu): add plugin for OpenTofu (#12285)

- Adds aliases
- Sets up autocompletion
- Adds promp functions to show workspace and `tofu` version

Co-authored-by: Marc Cornellà <marc@mcornella.com>
This commit is contained in:
chenzj 2024-07-14 01:31:32 +08:00 committed by GitHub
commit fd8f72b276
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 101 additions and 0 deletions

View file

@ -0,0 +1,58 @@
# OpenTofu plugin
Plugin for OpenTofu, a fork of Terraform that is open-source, community-driven, and managed by the Linux Foundation. It adds
completion for `tofu` command, as well as aliases and a prompt function.
To use it, add `opentofu` to the plugins array of your `~/.zshrc` file:
```shell
plugins=(... opentofu)
```
## Requirements
- [OpenTofu](https://opentofu.org/)
## Aliases
| Alias | Command |
| ----- | --------------- |
| `tt` | `tofu` |
| `tta` | `tofu apply` |
| `ttc` | `tofu console` |
| `ttd` | `tofu destroy` |
| `ttf` | `tofu fmt` |
| `tti` | `tofu init` |
| `tto` | `tofu output` |
| `ttp` | `tofu plan` |
| `ttv` | `tofu validate` |
| `tts` | `tofu state` |
| `ttsh`| `tofu show` |
| `ttr` | `tofu refresh` |
| `ttt` | `tofu test` |
| `ttws`| `tofu workspace`|
## Prompt functions
- `tofu_prompt_info`: shows the current workspace when in an OpenTofu project directory.
- `tofu_version_prompt_info`: shows the current version of the `tofu` commmand.
To use them, add them to a `PROMPT` variable in your theme or `.zshrc` file:
```sh
PROMPT='$(tofu_prompt_info)'
RPROMPT='$(tofu_version_prompt_info)'
```
You can also specify the PREFIX and SUFFIX strings for both functions, with the following variables:
```sh
# for tofu_prompt_info
ZSH_THEME_TOFU_PROMPT_PREFIX="%{$fg[white]%}"
ZSH_THEME_TOFU_PROMPT_SUFFIX="%{$reset_color%}"
# for tofu_version_prompt_info
ZSH_THEME_TOFU_VERSION_PROMPT_PREFIX="%{$fg[white]%}"
ZSH_THEME_TOFU_VERSION_PROMPT_SUFFIX="%{$reset_color%}"
```