envfetch

Lightweight cross-platform CLI tool for working with environment variables
Build status Test status GitHub commit activity crates.io downloads crates.io version
# Features - [x] Print all environment variables - [x] Get value of variable by name - [x] Show similar variables if variable not found - [x] Set variable (temporary and permanent) - [x] Delete variable (temporary and permanent) - [x] Load variables from dotenv-style file (temporary and permanent) - [ ] Set and delete multiple variables at once # Get started ## Installing You can install envfetch from Cargo (needs Rust installed): ```shell $ cargo install envfetch ``` Also, you can install it from source (needs Rust installed): ```shell $ cargo install --git https://github.com/ankddev/envfetch envfetch ``` Or, get binary from [GitHub Actions (needs GutHub account)](https://github.com/ankddev/envfetch/actions/) or [releases](https://github.com/ankddev/envfetch/releases/) ## Using To run envfetch, run `envfetch ` in your terminal. You can run `envfetch help` to see help message or `envfetch --version` to see program's version. ### Global flags - `--exit-on-error`/`-e` - exit on any error ### Command list #### Set Set environment variable and run process. Usage: `envfetch set [PROCESS]`, where: - `KEY` - name of environment variable - `VALUE` - value of environment variable - `PROCESS` - name of process which you want to run Options: - `--help`/`-h` - show help message For example: ```shell $ envfetch set MY_VAR "Hello" "npm run" ``` It will set environment variable with name `MY_VAR` value "Hello" and start `npm run` #### Print Print all environment variables Usage: `envfetch print` Options: - `--help`/`-h` - show help message For example: ```shell $ envfetch print SHELL = "powershell" windir = "C:\\Windows" SystemDrive = "C:" SystemRoot = "C:\\Windows" ... ``` It will print all environment variables in format `VAR = "VALUE"`. #### Get Get value of environment variable Usage: `envfetch get `, where: - `KEY` - name of environment variable Options: - `--help`/`-h` - show help message - `--no-similar-names`/`-s` - disable showing similar variables if variable not For example: ```shell $ envfetch get MY_VAR "Hello" ``` It will print value of specified variable. #### Delete Delete variable and start process. > [!NOTE] > Now variable deletes only for one run Usage: `envfetch delete `, where: - `KEY` - name of environment variable - `PROCESS` - name of command to run Options: - `--help`/`-h` - show help message For example: ```shell $ envfetch delete MY_VAR "npm run" ``` It will delete variable `MY_VAR` and run `npm run` command. #### Load Load environment variables from dotenv-style file and run process. > [!NOTE] > Now variables set only for one run Usage: `envfetch load `, where: - `PROCESS` - name of process which you want to run Options: - `--help`/`-h` - show help message - `--file `/`-f ` - relative or absolute path to file to read variables from. Note that it must in .env format. By default, program loads variables from `.env` file in current directory. For example: ```shell $ envfetch load "npm run" $ envfetch load "npm run" --file ".env.debug" ``` It will load variables from `.env` or `.env.debug` and start `npm run` # Building from source - Install Rust. If it already installed, update with ```shell $ rustup update ``` - Fork this project using button `Fork` on the top of this page - Clone your fork (replace `` with your username on GitHub): ```shell $ git clone https://github.com//envfetch.git ``` - Go to directory, where you cloned envfetch: ```shell $ cd envfetch ``` - Run program using Cargo (replace `` and `` to your command and args): ```shell $ cargo run -- ``` # Contributing - Read [section above to build envfetch from source](#building-from-source) - Create new branch - Made your changes - Test that everything works correctly - Format and lint code with ```shell $ cargo fmt $ cargo clippy --fix ``` - Run tests with ```shell $ cargo test ``` - Push changes - Open pull request