23 releases (8 breaking)
|0.9.1||Sep 15, 2022|
|0.8.2||Jun 13, 2022|
|0.7.0||Feb 9, 2022|
|0.5.1||Dec 13, 2021|
|0.4.2||Nov 24, 2021|
#58 in Build Utils
35 downloads per month
modenv is a tool to update and keep consistent multiple
It is designed with these objectives in mind:
- Simple and intuitive user experience.
modenvgreatly prioritizes a minimal, intuitive user-interface, helpful error messages and command suggestions to make it easy to use for beginners and experts.
- Lighting fast.
modenvis written in Rust, compiled natively, and therefore extremely fast.
- Error resistant.
modenvoffers dry-runs and does not perform destructive operations without explicit confirmation.
modenvuses reasonable error codes, so it can be used effectively in a CI/CD pipeline or build scripts.
It's easiest to understand the usage of
modenv by following the lifecycle of a typical project.
Initialize the environment
This command creates
.env.production files, and adds
.env* to your
Add to the environment
modenv -a PORT=3000 HOST=0.0.0.0
This command adds
HOST=0.0.0.0 to the first default env file found, typically
-a flag causes it to add
HOST with blank values to all other env files found.
If the key already exists, this operation will fail unless
-f is also passed.
The default env file is the first found of
Add to the production environment
Next, add values to
.env.production (specified by
modenv -p PORT=5000 HOST=0.0.0.0
Check consistency of your env files
This subcommand checks for missing values from your env files. Using a reference file (chosen implicitly, as described above, or
explicitly with a command flag),
check reports on missing keys.
This command returns non-zero if there are missing keys, so it can be used as part of a CI/CD pipeline.
If you want to update files with blank values for missing keys:
modenv check -f
This command additionally will replicate comments and ordering from the reference file to the other files.
cargo install modenv
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature)
- Commit your Changes (
git commit -m 'Add some AmazingFeature')
- Push to the Branch (
git push origin feature/AmazingFeature)
- Open a Pull Request