Skip to main content

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 .env files
  • ✅ 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

envyro-0.1.0.tar.gz (26.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

envyro-0.1.0-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

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

Hashes for envyro-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b540f8267f1185d062786583e06d559742ea39600b90d8f62146686081aaa156
MD5 da26c640cbcf28ce61c788c38952f0c9
BLAKE2b-256 c21c6ae98921a00391f7af652b9d5aa9ea60becc2201a440a633789d1b5b58df

See more details on using hashes here.

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

Hashes for envyro-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b0c1098c22b1344fd825a5dc7521c2d3aa47a58f389591c5cd1a45f1ee359ad1
MD5 8cd77188e2e29bfa320fc136c86ae982
BLAKE2b-256 08918f8819966f3c40fbbe5b25ebd1a311940fcc13fecc64ca6429a3da4c289d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page