Skip to content

anindya-dey/tfvm

Repository files navigation

Terraform Version Manager

A NodeJS-based CLI tool to manage terraform versions on a system


npm version Total Downloads license


Install it globally to manage all the terraform versions

$ npm install -g tfvm

default

Available Commands


list | ls [--remote | -r]

  • Use this command to list the downloaded versions of terraform

    $ tfvm list # gets all the locally available terraform executables
    
    # --- OR ---
    
    $ tfvm ls

    ls

  • Append --remote or -r with list 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

    ls-remote

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

    ls-when-empty


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.

    $ tfvm download
    
    # --- OR ---
    
    $ tfvm d

    download

  • 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

    download-version


remove | rm [--all | -a]

  • Use this to remove/delete a particular terraform executable or all terraform executables.

    $ tfvm remove # to remove a particular terraform executable
    
    # --- OR ---
    
    $ tfvm rm

    remove

  • Use --all or -a option to remove all the terraform executables.

    $ tfvm remove --all # to remove all the terraform executables
    
    # --- OR ---
    
    $ tfvm rm -a

    remove-all


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.

    $ tfvm use # select a terraform executable as default, which can be used via 'terraform' command

    use

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.

    $ tfvm dir # shows the directory where all the terraform executables are stored

    dir


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.
  2. 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 😍