Skip to content

benberryallwood/swap-env

Repository files navigation

Swap Env

swap-env is a simple CLI for swapping between different .env files.

demo

Requirements

python >= 3.9

Installation

  • with pipx (recommended):
pipx install swap-env

If you use a version of python less than 3.9, you can provide pipx with a different version to use for this package. I'd recommend pyenv for managing python versions:

# make sure you have python3.9 installed
pyenv install 3.9

# use that version with pipx
pipx install --python $(pyenv which python3.9) swap-env
  • with pip:
pip install swap-env

Usage

Save any .env files you regularly use to a directory called .swap-env/. This can be in any parent directory of where you want to use it, or in your home directory. Name them .env.<name> and you'll access them via <name> in swap-env.

If you have a local .env file (not a symlink), you will be prompted whether to save it first.

$ ls -A1 ~/.swap-env
.env.dev
.env.test

Then simply run swap-env and select the file you want to use. A symlink will be created at ./.env to that file.

$ swap-env
? Select a .env file:
❯ dev
  test

? Select a .env file: dev

$ ls -l .env
... .env@ -> ~/.swap-env/.env.dev

swap-env will search upwards from the directory you run it in and use the first .swap-env/ directory it finds. If you're not under the home directory, or a .swap-env/ directory isn't found, ~/.swap-env/ will be used (and created if it doesn't exist).

If you create a .swap-env/ directory in a git repo, remember to add it to your .gitignore.