https://github.com/openinf/openinf-autoenvstack
https://github.com/openinf/openinf-autoenvstack
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/openinf/openinf-autoenvstack
- Owner: OpenINF
- License: cc0-1.0
- Created: 2023-07-14T23:19:02.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-03-16T00:25:29.000Z (about 1 year ago)
- Last Synced: 2024-03-17T04:38:14.302Z (about 1 year ago)
- Language: Shell
- Size: 8.79 KB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Autoenvstack
Make your fish feel better in the environment of trees.
(or an improved version of [autoenvfish](https://github.com/idan/autoenvfish))
[Fish](https://github.com/fish-shell/fish-shell) plugin. Once installed, it will
do essentially the following- if you enter some directory and there's `.env.fish` inside, it will be sourced
- if you leave that directory, the file will be "unsourced""Unsourcing" means restoring back global shell variables (exported or not).
There could be multiple `.env.fish` on different levels of folder structure.
Diving into such a tree with a single `cd` command would cause them to be
sourced in order. Global variables are retained at each level, so returning
would unsource files in reversed order. It works similarly to the concept of
local scope variables in some programming languages, including fish.### Install
With [fisherman](https://github.com/OpenINF/openinf-fisher)
```
fisher OpenINF/openinf-autoenvstack
```### Example
In `~/play/.env.fish` `settitle` sets a global variable that is displayed both in
the title and command prompt.In both `~/play/scrapy/.env.fish` and `~/play/flask/.env.fish` Python virtual
environment is activated.By moving around, files are sourced and unsourced, eventually restoring the
initial state of the global variables.### Bugs
If, under some circumstances, autoenvstack removes all your globally declared
variables (no colors, git complains), clean up the cache of universal variables:```
rm -f ~/.config/fish/fishd.*
```