Skip to content
/ tgenv Public
forked from tgenv/tgenv

A tool to manage multiples Terragrunt versions

License

Notifications You must be signed in to change notification settings

rongyj/tgenv

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TGENV - Terragrunt Version Manager

Tests

lixnux macos shell

tgenvlogo

This project was forked from old project cunymatthieu/tgenv. The intention here it's keep the project alive.

Terragrunt version manager inspired by tfenv project.

Support 💻

Currently tgenv supports the following OSes

  • Mac OS X (64bit)
  • Mac OS M1 (arm64)
  • Linux (64bit)

Summary 🔖

  1. Installation
    1. Cloning the repository
    2. Export PATH
      1. Bash
      2. ZSH
  2. Usage
    1. tgenv install
    2. tgenv use
    3. tgenv uninstall
    4. tgenv list
    5. tgenv list-remote
    6. tgenv upgrade
  3. The terragrunt-version file
  4. Environment Variables
    1. TGENV_AUTO_INSTALL
    2. TGENV_DEBUG
  5. Uninstalling
  6. License

Installation 🔧

1. Cloning the repository

Check out latest version of tgenv

$ git clone --depth 1 --branch main https://github.com/tgenv/tgenv.git ~/.tgenv

Or checkout tgenv at specific tag

$ git clone --depth 1 --branch v1.0.0 https://github.com/tgenv/tgenv.git ~/.tgenv

2. Add tgenv to $PATH

Bash

Add ~/.tgenv/bin to your $PATH any way you like

$ echo 'export PATH="$HOME/.tgenv/bin:$PATH"' >> ~/.bash_profile

OR you can make symlinks for tgenv/bin/* scripts into a path that is already added to your $PATH (e.g. /usr/local/bin) OSX/Linux Only!

$ ln -s ~/.tgenv/bin/* /usr/local/bin

ZSH

Add ~/.tgenv/bin to your $PATH any way you like

$ echo 'export PATH="$HOME/.tgenv/bin:$PATH"' >> ~/.zshrc

If you use Oh My Zsh, after export just run

$ omz reload

Usage ▶️

tgenv install

Install a specific version of terragrunt
latest is a syntax to install latest version latest:<regex> is a syntax to install latest version matching regex (used by grep -e)

$ tgenv install 0.40.2
$ tgenv install latest
$ tgenv install latest:^0.9

If you use .terragrunt-version, tgenv install (no argument) will install the version written in it.

tgenv use

Switch a version to use latest is a syntax to use the latest installed version latest:<regex> is a syntax to use latest installed version matching regex (used by grep -e)

$ tgenv use 0.40.2
$ tgenv use latest
$ tgenv use latest:^0.10

tgenv uninstall

Uninstall a specific version of terragrunt latest is a syntax to uninstall latest version latest:<regex> is a syntax to uninstall latest version matching regex (used by grep -e)

$ tgenv uninstall 0.12.1
$ tgenv uninstall latest
$ tgenv uninstall latest:^0.9

tgenv list

List installed versions

% tgenv list
0.12.15
0.12.8
0.10.0
0.9.9

tgenv list-remote

List installable versions

% tgenv list-remote
0.42.5
0.42.4
0.42.3
0.42.2
0.42.1
0.42.0
0.41.0
0.40.2
0.40.1
0.40.0
0.39.2
0.39.1
0.39.0
...

tgenv upgrade

Upgrade the version of TGEnv software to latest version

$ tgenv upgrade

The terragrunt-version file 📄

If you put .terragrunt-version file on your project root, tgenv detects it and use the version written in it. If the version is latest or latest:<regex>, the latest matching version currently installed will be selected.

$ cat .terragrunt-version
0.9.9

$ terragrunt --version
terragrunt version v0.9.9

Your version of terragrunt is out of date! The latest version
is 0.7.3. You can update by downloading from www.terragrunt.io

$ echo 0.9.9 > .terragrunt-version

$ terragrunt --version
terragrunt v0.12.15

$ echo latest:^0.10 > .terragrunt-version

$ terragrunt --version
terragrunt v0.10.3

Environment Variables 📦

TGENV_VERSION

String (Default: "")

Set the terragrunt version from environment variable TGENV_VERSION.

  • unset/empty-string: It will pickup the terragrunt version from libexec/tgenv-version-name
  • set: Will use the version setting from this env variable for the terragrunt version. This can help to manage multiple terragrunt version for different shell terminals. Different terminal can keep its own terragrunt version

TGENV_AUTO_INSTALL

String (Default: true)

Should tgenv automatically install terragrunt if the version specified by defaults or a .terragrunt-version file is not currently installed.

TGENV_AUTO_INSTALL=false terragrunt plan

TGENV_DEBUG

Integer (Default: "")

Set the debug level for TGENV.

  • unset/empty-string: No debug output
  • set: Bash execution tracing

Uninstalling 🚫

Just run:

$ rm -rf /some/path/to/tgenv

And delete the previous export $PATH .

The uninstall command is under development.

LICENSE 👍

About

A tool to manage multiples Terragrunt versions

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 100.0%