環境変数をディレクトリごとに切り替えたい時に便利だったのでメモっておきます
環境はOS X El Capitan(10.11.4)でbrew使ってます
インストール
homebrew使ってインストールします
brew install direnv
設定
お使いのshellに合わせて設定ファイルを変えてください
僕はzshを使っているので
.~/zshrc
の一番下に追加しました
.zshrc
export EDITOR="vim"
eval "$(direnv hook zsh)"
設定読み込み
source ~/.zshrc
EDITORはterminal上でdirenv edit .
する時に選択されるエディタです、vim使います
使い方
特定の環境変数を試したいディレクトリを作成
例えば
mkdir ~/test_direnv
test_direnvに入って
direnv edit .
するとvimが立ち上がって.envrcの編集中になります
$GOPATHをいつもとは違う設定にしたい場合
※test_direnv以外のディレクトリで普段のGOPATHが例えば以下のようだったとして
echo $GOPATH
>> /Users/oshikawatakashi/golang
.envrcを次のように編集して保存すると
.zshrc
export GOPATH=`pwd`
test_direnvの中でだけは
echo $GOPATH
>> /Users/oshikawatakashi/test_direnv
このように変更されています、他のディレクトリで出力すると元のままです
※こんなエラーが出る時
direnv: error .envrc is blocked. Run `direnv allow` to approve its content.
言われたとおりにこちらのコマンドを実行して解決
direnv allow
所感
プロジェクトごとにGOPATH切り替える時にかなり便利です
参考
こちらの記事です