dotenv: a cross-platform tool to load a .env and run a command.

To update or switch versions, run webi dotenv@stable.

Files

These are the files / directories that are created and/or modified with this install:

~/.config/envman/PATH.env
~/.local/bin/dotenv

Cheat Sheet

dotenv makes it easy to run a command with a set of ENVs (environment variables) from a .env file. It works cross platform, and with any programming environment (Node.js, Go, Rust, Ruby, Python, etc)

# Usage: dotenv [-f .env.alt] -- <command> [arguments]

# Example:
dotenv -f .env -- node server.js --debug

How Precedence Works

  1. command line flags
    • ex: --port 8080
  2. existing environment variables
    • ex: export PORT=8080 or env PORT=8080 mycommand
  3. first-loaded wins for multiple or cascading .env.* files
    • ex: dotenv -f .env,.env.local

ENV syntax

# comments and blank lines are ignored

# you can use quotes of either style
FOO=bar
FOO2="bar2 bar3"
FOO3='bar2 bar3'

# 'export' will be trimmed and ignored
# (yay for bash compatibility)
export FOOBAR=excellent

Why --?

The -- is a common convention for arguments parsers to let them know that everything after the -- should be treated as an argument (a word) rather than a flag (not something like --help).

You should use this whenever one command runs another command.

Contribute

Report an Issue Submit Installer Star on GitHub