direnvのインストール

direnvはshellの環境変数を切り替えるツールになります。
direnvを使用することでディレクトリ単位に環境変数の切り替えができるようになります。

GitHubリポジトリ

direnv/direnv: Unclutter your .profile

インストール

Macの場合、homebrewでインストール可能なので、homebrewでインストールが可能です。

brew install direnv

インストール確認

direnvコマンドが実行できることを確認します。

$ direnv version
2.15.2

~/.bash_profileの修正

下記の内容を~/.bash_profileに追記します。

export EDITOR=vim
eval "$(direnv hook bash)"

環境変数の設定

環境変数を切り替えたいディレクトリに移動し、下記のコマンドを実行します。

$ direnv edit .

例) AWS関連の環境変数を設定する場合下記の内容を追記します。

export AWS_ACCESS_KEY_ID=xxxxxxxxxxxxxxxx
export AWS_SECRET_ACCESS_KEY=xxxxxxxxxxxxxxx

export AWS_DEFAULT_REGION=ap-northeast-1
export AWS_DEFAULT_OUTPUT=json

動作確認

一度、他のディレクトリに移動し、再度、環境変数を設定したディレクトリに移動すると、先程設定した環境変数が設定されていることが確認できます。

$ env| grep -i aws
AWS_DEFAULT_OUTPUT=json
AWS_DEFAULT_REGION=ap-northeast-1
AWS_SECRET_ACCESS_KEY=xxxxxxxxxxxxxxx
AWS_ACCESS_KEY_ID=xxxxxxxxxxxxxxxx
$
.envrcを変更した際に「direnv: error .envrc is blocked. Run `direnv allow` to approve its content.」のメッセージが出力されます。その際には「direnv allow」を実行してください。
このファイルをリポジトリに追加し、GitHub等ににpushしてしまうと環境変数で設定したアクセスキー/シークレットキーが漏れてしまうので、.gitignoreでgitの管理対象から外すようにしましょう。

コメント