Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/venthur/dotenv-cli
Executes commands with environment variables set from .env file. Zero dependencies.
https://github.com/venthur/dotenv-cli
bash-completion cli debian dotenv dotenv-cli python
Last synced: 26 days ago
JSON representation
Executes commands with environment variables set from .env file. Zero dependencies.
- Host: GitHub
- URL: https://github.com/venthur/dotenv-cli
- Owner: venthur
- License: mit
- Created: 2018-10-14T16:20:10.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-09-23T04:20:24.000Z (about 1 month ago)
- Last Synced: 2024-09-29T16:43:43.222Z (about 1 month ago)
- Topics: bash-completion, cli, debian, dotenv, dotenv-cli, python
- Language: Python
- Homepage: https://dotenv-cli.readthedocs.io
- Size: 190 KB
- Stars: 29
- Watchers: 3
- Forks: 7
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# dotenv CLI
Dotenv-CLI provides the `dotenv` command. `dotenv` loads the `.env` file from
the current directory, puts the contents in the environment by either changing
existing- or adding new environment variables, and executes the given command.`dotenv` supports alternative `.env` files like `.env.development` via the `-e`
or `--dotenv` parameters. This parameter can be repeated to load multiple
files, the .env files will be loaded in the order they are provided.With the `--replace` flag, `dotenv` also provides an option to completely
replace the environment variables with the ones from the `.env` file, allowing
you to control exactly which environment variables are set.`dotenv` provides bash completion, so you can use `dotenv` like this:
```bash
$ dotenv make
all clean docs lint release test
```## Install
### Using PyPi
dotenv-cli is [available on PyPi][pypi], you can install it via:
[pypi]: https://pypi.org/project/dotenv-cli/
```bash
$ pip install dotenv-cli
```### On Debian and Ubuntu
Alternatively, you can install dotenv-cli on Debian based distributions via:
```bash
# apt-get install dotenv-cli
```## Usage
Create an `.env` file in the root of your project and populate it with some
values like so:```sh
SOME_SECRET=donttrythisathome
SOME_CONFIG=foo
```Just prepend the command you want to run with the extra environment variables
from the `.env` file with `dotenv`:```bash
$ dotenv some-command
```and those variables will be available in your environment variables.
## Rules
The parser understands the following:
* Basic unquoted values (`BASIC=basic basic`)
* Lines starting with `export` (`export EXPORT=foo`), so you can `source` the
file in bash
* Lines starting with `#` are ignored (`# Comment`)
* Empty values (`EMPTY=`) become empty strings
* Inner quotes are maintained in basic values: `INNER_QUOTES=this 'is' a test`
or `INNER_QUOTES2=this "is" a test`
* White spaces are trimmed from unquoted values: `TRIM_WHITESPACE= foo ` and
maintained in quoted values: `KEEP_WHITESPACE=" foo "`
* Interpret escapes (e.g. `\n`) in double quoted values, keep them as-is in
single quoted values.Example `.env` file:
```sh
BASIC=basic basic
export EXPORT=foo
EMPTY=
INNER_QUOTES=this 'is' a test
INNER_QUOTES2=this "is" a test
TRIM_WHITESPACE= foo
KEEP_WHITESPACE=" foo "
MULTILINE_DQ="multi\nline"
MULTILINE_SQ='multi\nline'
MULTILINE_NQ=multi\nline
#
# some comment
```becomes:
```sh
$ dotenv env
BASIC=basic basic
EXPORT=foo
EMPTY=
INNER_QUOTES=this 'is' a test
INNER_QUOTES2=this "is" a test
TRIM_WHITESPACE=foo
KEEP_WHITESPACE= foo
MULTILINE_DQ=multi
line
MULTILINE_SQ=multi\nline
MULTILINE_NQ=multi\nline
```