nDiki : 2015年04月30日

2015年4月30日 (木)

開発ディレクトリ毎に異なる環境変数を設定するのに direnv を使う

シェルで特定の開発ディレクトリ以下に移動すると自動的に設定ファイルで指定された環境変数を設定し、そのディレクトリから別のディレクトリに移動すると戻してくれる direnv が便利。

https://github.com/zimbatm/direnv

Go開発するのに GOPATH と bin への PATH 追加が面倒だったので導入してみた。

インストール

 git clone https://github.com/zimbatm/direnv
 cd direnv
 make build
 cp -a direnv $HOME/local/bin

なお direnv は Go で書かれているのでソースからビルドするには Go開発環境が必要。

Bash の設定

.bashrc に以下を追加。

 if command -v direnv > /dev/null; then
    eval "$(direnv hook bash)"
 fi

その他のシェルでの設定は https://github.com/zimbatm/direnv 参照。

Go プログラム開発ディレクトリでの設定

 $ cd project_dir
 $ export EDITOR=emacsclient # 次のコマンドで開くエディタ
 $ direnv edit .
   .envrc の編集用にエディタが開くので

   layout go

   と入力して保存。

後は Bash でこのディレクトリ以下(サブディレクトリも含む)に移動するとこの .envrc のあるディレクトリが GOPATH に追加され、また bin ディレクトリが PATH に追加される。便利。

なお direnv edit . しないで直接 .envrc を作った場合は、別途 direnv allow . を実行してこの .envrc を使うことを明示的に許可する必要がある。許可したかどうかは ~/.config/direnv/allow/* に保存される(freedesktop.org の XDG Base Directory Specification っぽくなっているので XDG_CONFIG_HOME 環境変数があれば ~/.config ではなくてその下に保存される)。

その他標準で

  • layout go
  • layout node
  • layout perl
  • layout python
  • layout ruby

などが用意されている。また

 PATH_add bin

のようにして PATH への追加も簡単。

その他コマンドの実行も可能なので開発以外にもいろいろ便利に使える。

スポンサード リンク

今日のさえずり: 配信停止しようとしたら「個人情報の取扱いについて」も同意しないといけなくてイカれてる

2015年04月30日

  • 10:11LINE Developer Dayに参加してきた - tech::hexagram” http://bit.ly/1GH4yjE
  • 19:31 GOPATH 管理するのが面倒になってきたので direnv 入れた。
  • 19:36 あ、 Slack 不調なのね。 Windows クライアントだと online 表示のままなので気が付かなかった。
  • 20:25 go help packages して "..." ワイルドカードを知った。
  • 22:59 勝手に新しいメールマガジン vol.1 を送りつけてきておいて、配信停止しようとしたら名前を入力しないといけなくて「個人情報の取扱いについて」も同意しないといけなくてイカれてる。
  • 23:40 2015年6月2日。 / “Shibuya Perl Mongers : Shibuya Perl Mongersテクニカルトーク#17” http://bit.ly/1Alg9A9
[ 4月30日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィでマネージャー・PO をしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

follow us in feedly

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.042972s / load averages: 0.40, 0.41, 0.40
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker