Dotenv section switcher
src | ||
test_data | ||
.dockerignore | ||
.env.example | ||
.envrc | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
COPYING | ||
default.nix | ||
Dockerfile | ||
flake.lock | ||
flake.nix | ||
README.md | ||
shell.nix |
vnetod
Dotenv state switcher
You can create many states in your .env
and switch between them.
Rules:
- State name starts on a new line with
###
symbols (Ex.### local
) - State name can contain multiple comma-separated sections (Ex.
### local,staging
) - Each section may specify a namespace (Ex.
### debug:on,dev:on
). If a section doesn't contain a namespace, it's a global namespace. - State ends if line is empty or contains a new state name.
You can see the full example.
Usage
Basic usage
cp .env.example .env
vnetod local # enable local section
vnetod staging # enable staging section
vnetod local debug # enable local and debug sections
vnetod # disable all sections
This tool uses .env
from your current location, but you can change this
behavior with the -f
(--file
) flag.
cp .env.example .env.properties
vnetod -f .env.properties local
And you can also change the output file with the -o
(--output
) flag, if you
don't want to overwrite the input file.
vnetod -f .env.example -o .env local
You can also use variables from namespaces
vnetod db:staging debug:off
You can switch between states and overwrite from namespaces at the same time.
vnetod local db:staging debug:off
For more information, see the help.
vnetod --help
Install
Cargo
cargo install vnetod
Docker
docker run --rm -it -v $PWD:/data pleshevskiy/vnetod --help
Nix
nix run git+https://git.pleshevski.ru/pleshevskiy/vnetod -- --help
License
GNU General Public License v3.0 or later
See COPYING to see the full text.