Environment manager with multi-env parsing
Project description
🛠️ Envyro: Environment Configuration Simplified
Envyro is a modern configuration format and CLI tool for managing environment variables across multiple environments like dev, prod, stage, and local. It uses a custom .envyro format that supports nesting, multi-env inline values, and structured scoping.
🔍 Features
1. 🔄 Convert .envyro to .env
Generate traditional .env files for a specific environment by parsing a structured .envyro file.
Command:
envyro export --env dev
2. 📤 Export Environment Variables to Shell
Directly export variables to your current shell environment for a given environment.
Command:
source <(envyro export --env dev --shell)
3. 📦 Split .envyro into Multiple .env Files
Break a single .envyro file into multiple .env files like .env.dev, .env.prod, etc.
Command:
envyro split
🧪 Example .envyro Format
[envs]
environments = prod, dev, stage, local
default = dev
[app]
name = "MyApp"
version = [prod]:1.0.0 [dev]:0.1.0 [stage]:0.2.0 [local]:0.3.0
description = "Unified app config"
author = "John Doe"
[db]
host = [prod]:prod-db.example.com [*]:localhost
port = 5432
user = [prod]:prod_user [*]:local_user
password = [prod]:prod_pass [*]:dev_pass
[aws.s3]
bucket = [prod]:prod-bucket [dev]:dev-bucket [stage]:stage-bucket [local]:local-bucket
region = [*]:us-east-1
[aws.sns]
topic = [prod]:arn:aws:sns:us-west-1:123456789012:prod-topic [dev]:arn:aws:sns:us-west-2:123456789012:dev-topic
🧠 Advantages of .envyro
- ✅ Supports nesting like
[aws.s3],[db.connection] - ✅ Single-file config for all environments
- ✅ Allows default (
[*]) and environment-specific values - ✅ Cleaner and more maintainable than multiple
.envfiles - ✅ Easy to convert into
.env,.yaml, or Python dict
🧰 Installation
You can install envyro as a local tool (coming soon as a CLI tool). For now, clone and run manually.
git clone https://github.com/your-org/envyro
cd envyro
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python main.py
👨💻 Author
Made with ❤️ by Manmeet Kohli, was there a need ? Don't know....
📜 License
MIT License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file envyro-0.1.0.tar.gz.
File metadata
- Download URL: envyro-0.1.0.tar.gz
- Upload date:
- Size: 26.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b540f8267f1185d062786583e06d559742ea39600b90d8f62146686081aaa156
|
|
| MD5 |
da26c640cbcf28ce61c788c38952f0c9
|
|
| BLAKE2b-256 |
c21c6ae98921a00391f7af652b9d5aa9ea60becc2201a440a633789d1b5b58df
|
File details
Details for the file envyro-0.1.0-py3-none-any.whl.
File metadata
- Download URL: envyro-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b0c1098c22b1344fd825a5dc7521c2d3aa47a58f389591c5cd1a45f1ee359ad1
|
|
| MD5 |
8cd77188e2e29bfa320fc136c86ae982
|
|
| BLAKE2b-256 |
08918f8819966f3c40fbbe5b25ebd1a311940fcc13fecc64ca6429a3da4c289d
|