Git Product home page Git Product logo

richardsonjf / envio Goto Github PK

View Code? Open in Web Editor NEW

This project forked from envio-cli/envio

0.0 1.0 0.0 2.04 MB

Envio is a command-line tool that simplifies the management of environment variables across multiple profiles. It allows users to easily switch between different configurations and apply them to their current environment

License: Apache License 2.0

Shell 33.40% Rust 54.75% PowerShell 11.86%

envio's Introduction

envio Logo

A Modern And Secure CLI Tool For Managing Environment Variables

CICD Version info

AboutInstallationUsageContributingLicense


Demo

About

envio is an open source CLI tool that helps make managing environment variables a breeze. With envio, users can create encrypted profiles that contain a collection of environment variables associated with a specific project or use case. envio ensures security and simplifies the development process by allowing users to easily switch between profiles as needed and load them in their current terminal session for immediate use.

Some key features of envio include:

  • Create profiles to store environment variables
  • Load profiles into terminal sessions
  • Persistent environment variables that are available in future sessions
  • Encrypted profiles
  • Adding new environment variables
  • Removing environment variables
  • Modifying existing environment variables
  • Listing all environment variables
  • Listing profiles
  • Importing profiles from a file
  • Downloading profiles and then importing them
  • Exporting profiles to a file

Profiles

In envio, a profile is a collection of environment variables that are associated with a specific project, application, or use case. Users can create multiple profiles, each with their own set of environment variables, and easily switch between them as needed.

For example, a developer might create a profile for a web development project that includes environment variables for the database connection, API keys, and other project-specific settings. They could then switch to a different profile for a mobile app project that requires a different set of environment variables.

The benefit of using profiles is that users can easily manage and switch between different sets of environment variables without having to manually set and unset them every time they switch tasks. Additionally, in envio, profiles are encrypted, so users can rest assured that their sensitive environment variables are secure and require a key to access them.

Installation

You can install envio through a few methods

Releases

You can head over to the releases page and download the offical envio binaries from there for your target operating system. Windows MSI installers are also available

Cargo Repository

You can install envio through the Cargo repository using the following command:

$ cargo install envio

Source

Go here to see how

More methods of installation will be added in the future!

Usage

Go here to see how to use the tool

Development

In addition to the command-line tool, envio can also be used as a library in Rust programs to manage environment variables. To use envio in your program, add it as a dependency in your Cargo.toml file:

Please note that the envio library is not stable right now and can be subjected to many changes!

[dependencies]
envio = "0.1.0"

Then, in your Rust code, you can use the envio crate to read and write environment variables Here's a simple example:

// In this example we get the profile passed as an argument to the program
// and then print the environment variables in that profile

use envio;

let args: Vec<String> = std::env::args().collect();

if args.len() != 2 {
  println!("Usage: <profile_name> <key>");
  return;
}

let profile_name = &args[1];
let key = &args[2]; // All profiles have a key that is used to encrypt the environment variables, this ensures that the environment variables are secure


for (env_var, value) in &envio::get_profile(profile_name.to_string(), key.to_string()).unwrap().envs {
  println!("{}: {}", env_var, value);
}

For more examples check out the examples directory

Currently, envio is only available as a Rust library

Contributing

Contributions to envio are always welcome! Please see the Contributing Guidelines for more information.

License

This project is licensed under the MIT License and the Apache License

envio's People

Contributors

humblepenguinn avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.