tfvm
Version:
Terraform Version Manager
146 lines (83 loc) • 4.63 kB
Markdown
# Terraform Version Manager
### A NodeJS-based CLI tool to manage terraform versions on a system
<br />
[](https://www.npmjs.com/package/tfvm) [](https://www.npmjs.com/package/tfvm) [](https://www.npmjs.com/package/tfvm)
<br />
Install it globally to manage all the terraform versions
```sh
$ npm install -g tfvm
```

### Available Commands
#### `list | ls [--remote | -r]`
- Use this command to list the downloaded versions of terraform
```sh
$ tfvm list # gets all the locally available terraform executables
# --- OR ---
$ tfvm ls
```

- Append `--remote` or `-r` with `list` to get a list of all available releases from [Terraform](https://releases.hashicorp.com/terraform)
```sh
$ tfvm list --remote # displays the available releases from Terraform's website
# --- OR ---
$ tfvm ls -r
```

- If you do not have any terraform executables on your path, you would see an error, like so:

#### `download | d [version]`
- This will present a list of available versions, and then a list of releases available for that version from terraform. Choose one with up/down arrow and hit `ENTER` to download it.
```sh
$ tfvm download
# --- OR ---
$ tfvm d
```

- Optionally, a `version` can be appended to this command which would directly present a list of releases, associated to this version:
```sh
$ tfvm download 1.3.1
# --- OR ---
$ tfvm d 1.3.1
```

#### `remove | rm [--all | -a]`
- Use this to remove/delete a particular terraform executable or all terraform executables.
```sh
$ tfvm remove # to remove a particular terraform executable
# --- OR ---
$ tfvm rm
```

- Use `--all` or `-a` option to remove all the terraform executables.
```sh
$ tfvm remove --all # to remove all the terraform executables
# --- OR ---
$ tfvm rm -a
```

#### `use`
- This command will present a list of all the locally available terraform executables. Once a particular executable is selected, it would be set as default and made available to the user via the `terraform` commands in the terminal.
```sh
$ tfvm use # select a terraform executable as default, which can be used via 'terraform' command
```

> NOTE: User might have to perform a one-time update of their PATH variable to include the path indicated by this command.
#### `dir`
- This command shows the directory where all the terraform executables are stored locally. The default path is the `$USER/terraform` directory.
```sh
$ tfvm dir # shows the directory where all the terraform executables are stored
```

> **NOTES:**
>
> 1. Currently, platform specfic releases are not filtered out when executing `tfvm list --remote` or `tfvm download [version]` command. User needs to make sure that they are downloading the right release for their system.
⭐ _This project is inspired by the [nvm project](https://github.com/nvm-sh/nvm)_ 😍
⭐ _I created these beautiful gifs by using [terminalizer](https://www.npmjs.com/package/terminalizer)_ 😍