Skip to content

Latest commit

 

History

History
72 lines (47 loc) · 1.7 KB

README.md

File metadata and controls

72 lines (47 loc) · 1.7 KB

tfswitcher

Terraform and OpenTofu version switcher written in Rust.

Installation

Homebrew

To install via Homebrew, run:

brew install asleepycat/tap/tfswitcher

This will build from source.

Cargo

To install with cargo, run:

cargo install tfswitcher

There are also prebuilt binaries available with each release for Linux, macOS and Windows.

Usage

To see available flags and arguments, run tfswitcher -h or tfswitcher --help.

You can also use a configuration file to automatically set certain flags or arguments. Simply place a file called .tfswitch.toml either in your current working directory or in your $HOME directory.

bin = "$HOME/.local/bin/terraform"
list_all = false
opentofu = false
force_remove = false
silent = false
verbose = false
version = "1.0.0"

Shell Completions

tfswitcher can generate tab-completion scripts for your desired shell. To see which shells are supported, see the --help text.

For example, for Bash:

tfswitcher -c bash >> ~/.local/share/bash-completion/completions/tfswitcher

Alternatively, you can source the tab-completion script inside your shell's start up script:

echo "source <(tfswitcher -c bash)" >> ~/.bashrc

Caveats

This has not been tested on Windows or macOS, so YMMV.

Where's v0.1.0?

v0.1.0 used FFI with Cgo in order to use HashiCorp's terraform-config-inspect library. This was inadvertently published as the Windows and macOS builds were broken and is yanked.

v0.2.0 replaced the Go library with a partially-reimplemented Rust library to eliminate FFI and makes building for Windows and macOS a lot less painful.