Install it globally to manage all the terraform versions
$ npm install -g tfvm
-
Use this command to list the downloaded versions of terraform
$ tfvm list # gets all the locally available terraform executables # --- OR --- $ tfvm ls
-
Append
--remote
or-r
withlist
to get a list of all available releases from Terraform$ 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:
-
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.$ 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:$ tfvm download 1.3.1 # --- OR --- $ tfvm d 1.3.1
-
Use this to remove/delete a particular terraform executable or all terraform executables.
$ tfvm remove # to remove a particular terraform executable # --- OR --- $ tfvm rm
-
Use
--all
or-a
option to remove all the terraform executables.$ tfvm remove --all # to remove all the terraform executables # --- OR --- $ tfvm rm -a
-
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.$ 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.
-
This command shows the directory where all the terraform executables are stored locally. The default path is the
$USER/terraform
directory.$ tfvm dir # shows the directory where all the terraform executables are stored
NOTES:
- Currently, platform specfic releases are not filtered out when executing
tfvm list --remote
ortfvm download [version]
command. User needs to make sure that they are downloading the right release for their system.- Chalk v4.1.2 is used as it supports typescript; Chalk >= v5 is purely ESM.
⭐ This project is inspired by the nvm project 😍
⭐ I created these beautiful gifs by using terminalizer 😍