direnvの使い方をいつも忘れるので備忘録として書いておく。
direnvとは
特定のディレクトリに移動したときに設定ファイルに記載された環境変数を読み込んで有効化するツール。 とりあえず、まだインストールしてないのであればインストールするべし!便利なので!
インストール
Macの方はHomebrewで入れればいいと思います。
$ brew install direnv
上記以外でインストールする方はリポジトリのREADMEを読んでください。
使い方
特定のプロジェクトのディレクトリ配下で .envrc
に環境変数を書き込む
$ echo "export AWS_ACCESS_KEY_ID=xxxxxxxxxxxxxxxxxxxxxxxxxx" >> .envrc direnv: error .envrc is blocked. Run `direnv allow` to approve its content. $ echo "export AWS_SECRET_KEY_ID=xxxxxxxxxxxxxxxxxxxxxxxxxx" >> .envrc direnv: error .envrc is blocked. Run `direnv allow` to approve its content. $ echo "export AWS_DEFAULT_REGION=ap-northeast-1" >> .envrc direnv: error .envrc is blocked. Run `direnv allow` to approve its content.
.envrcの内容を許可する
このままだと .envrc
はブロックされたままなので以下のコマンドで許可してあげる。
$ direnv allow . direnv: loading .envrc direnv: export +AWS_ACCESS_KEY_ID +AWS_DEFAULT_REGION +AWS_SECRET_ACCESS_KEY
これで、環境変数がロードされたはず。 ためしに、環境変数を出力してみよう。
$ echo $AWS_DEFAULT_REGION ap-northeast-1
はい、ちゃんと出力されてます。
特定のディレクトリから抜けると環境変数もアンロードされる
今のディレクトリから一つ上の階層に移動してみよう。
$ cd ..
direnv: unloading
.envrcに書き込んだ環境変数がアンロードされました。 確認するために出力してみます。
$ echo $AWS_DEFAULT_REGION
はい、何も出力されなくなりました。
これでいちいち環境変数を読み込んだりする作業が楽になりますね!
注意
.envrc
はGithub等にコミットするのはやめましょう。
リポジトリが公開されていると、AWSのシークレットキーなどが盗まれて悪用されちゃうので。