Magic per-project shell environments. Very pretentious.
If a directory contains a .env
file, it will automatically be executed
when you cd
into it.
This is great for...
- auto-activating virtualenvs
- project-specific environment variables
- making millions
Foreman env files are completely compatible.
You can also nest envs within eachother. How awesome is that!?
Follow the white rabbit::
$ touch project/.env
$ echo "echo 'woah'" > project/.env
$ cd project
woah
Install it easily:
$ brew install autoenv
$ echo 'source /usr/local/opt/autoenv/activate.sh' >> ~/.bash_profile
$ pip install autoenv
$ echo "source `which activate.sh`" >> ~/.bashrc
$ git clone git://github.com/kennethreitz/autoenv.git ~/.autoenv
$ echo 'source ~/.autoenv/activate.sh' >> ~/.bashrc
Autoenv overrides cd
. If you already do this, invoke autoenv_init
within your custom cd
after sourcing activate.sh
.
Autoenv can be disabled via unset cd
if you experience I/O issues with
certain file systems, particularly those that are FUSE-based (such as smbnetfs
).
Install the test runner::
$ make
gem install dtf --version 0.1.2
Successfully installed dtf-0.1.2
Test::
$ make test
dtf tests/*
............
##### Processed commands 14 of 14, success tests 12 of 12.
git clone https://github.com/tranhuucuong91/autoenv.git ~/.autoenv
echo 'source ~/.autoenv/activate.sh' >> ~/.bashrc
echo 'source ~/.autoenv/activate.sh' >> ~/.zshrc_myconfig
virtualenv venv -p python3
BASEDIR=$(dirname $0)
source ${BASEDIR}/venv/bin/activate