

direnvをbrew/ソースビルドで入れてbashにhookを仕込んでみた
この記事は、構成と文章の整理にAIを使っています。
あくまで読みやすくするための補助で、内容そのものをAIにすべて任せて書いているわけではありませんが、ところどころ相談しながら整えています。
何をしたか
direnvをmacとlinuxそれぞれで入れて、bashにhookを仕込んだ。ついでにdirenv edit .の挙動も確認した。
インストール
mac (Homebrew)
brew install direnvLinux (ソースビルド)
git clone https://github.com/direnv/direnvcd direnvsudo make installGoのツールチェーンが入ってないとmakeが通らない。事前にgoコマンドが使える状態にしておく必要がある。
bashへの設定
~/.bashrcに以下を追記する。
export EDITOR=/usr/bin/vimeval "$(direnv hook bash)"反映はsource ~/.bashrc。
使い方
対象のディレクトリに移動してdirenv edit .を叩く。
cd /path/to/your/targetdirenv edit ..envrcが無ければ作られて$EDITOR(今回はvim)で開く。保存して閉じると自動でdirenv allowされた状態になるらしい。ただしこの自動allowは.envrcのmtimeが変わった場合のみ発動する仕様で、CHANGELOGを見る限りv2.1.0(2013-11-10)より前から入っている挙動だった。2019/2/13時点の最新版はv2.19.1(2019/1/31リリース)だけど、当然この挙動になる。
既に他人が作った.envrcをpullしてきて中身を確認済みの場合は、direnv edit .ではなくdirenv allow .だけで許可する方が早い。信頼していないディレクトリの.envrcをそのままallowするのはリスクがあるので、中身は見てから許可した方がいい。