nvexpo/README.md

78 lines
1.9 KiB
Markdown

# NVEXPO - Non-Volatile EXPOrt
nxexpo it's a simple tool to define environment variables on-the-fly and persisting them between shell sessions.
## Dependencies
- Python 3.8
### Dependencies to build
- [Poetry](https://python-poetry.org/)
### Dependencies to develop
- [PoeThePoet](https://poethepoet.natn.io/)
- [Ruff](https://docs.astral.sh/ruff/)
- [MyPy](https://www.mypy-lang.org/)
## Installation
### Installation trough PyPI
To install the latest stable version follow the commands:
```Bash
$ pip install nvexpo --user
```
You can also use [pipx](https://pypa.github.io/pipx/) to install it:
```Bash
$ pipx install nvexpo
```
### From the source
To install from the source follow the commands:
```Bash
$ poetry build
$ pip install dist/nvexpo*.whl
```
## Preparation
Add the following line to your `.bashrc` file:
```Bash
eval "$(nvexpo init bash)"
```
## Basic usage
The usage it's too simple. If you want to create a new env var into the current bash session use the command:
```Bash
$ nx weird_variable=101
```
Then, you can close the current terminal or terminate the bash session, and when you start a new one, your env vars will still be there :sparkles:.
```Bash
$ echo $weird_variable
101
```
### Unset variables
To unset variables you need to use flag `--unset`:
```Bash
$ nx var1="hello world"
$ echo $var1
hello world
$ nx --unset var1
$ echo $var1
$ works!!
```
## Why?
The main motivation for creating this tool was that in my work I like to have the Git branch I'm working on in `$branch`, but it's annoying to have to create it every time I restart or close the terminal I was working on.
I could add it to `.bashrc` directly, but I would have to do it every time I have to work on a new branch and it wasn't comfortable.
So now instead of having to type:
```Bash
branch="super_useful_change"
```
I have to write:
```Bash
nx branch="super_useful_change"
```
and that's it, no matter how many times I restart, my variable will be there.