フリーランチ食べたい

No Free Lunch in ML and Life. Pythonや機械学習のことを書きます。

【Go】 .env.exmapleを簡単に作れるツールを作りました

Go製の便利ツール envexample

f:id:ikedaosushi:20190127195519p:plain

小ネタですが、Goで便利ツール作ってみたので紹介させてください。 .env から .env.example を簡単に作れものです。

解決したかった課題

環境変数の管理に .env ファイルを使っているケースは多いのではないのでしょうか? 通常、 .env ファイルはgitにはコミットせず、代わりに値だけ除いた .env.example をコミットするのが一般的だと思います。

例えば .env ファイルが下のようだったとすると

FOO=BAR
HOGE=FUGAFUGA

.env.example は下のようになります。

FOO=
HOGE=

個人PJでもよく使うのですが、毎回 cp .env .env.example のように作成して値を手作業で消す、というようなことをしていました。 これは面倒ですし、生産的でないので以前から課題に感じていました。

というわけで作りました

というわけでGoで簡単に .evn.example を作れるツールを作ってみました。 前からGoで何か書く練習をしたかったので題材としてちょうど良かったというのもありました。

github.com

インストール

Goの環境が構築できているこが前提になります。

$ go get github.com/ikedaosushi/envexample

使い方

使い方はとても簡単で .env が存在していて、 .env.example を作成したいレポジトリに行って、下のコマンドを打つだけです。

$ envexample
# => creating .env.example

これで、 .env.example が作成できます。 デフォルトの値が .env .env.example になっていますが、引数を渡してあげれば任意のファイル名にも実行できます。

例えば .dockerenv というファイルのexampleファイルを作りたかった場合は、下のように書くことができます。

$ envexample .dockerenv .dockerenv.example
# => creating .dockerenv.example

実装など

かなりシンプルなツールなのであんまり工夫した点はありませんが笑、コメント

# SAMPLE=ENV
HELLO=FOO
TEST=BAR

というような .env ファイルがあったときに

# SAMPLE=
HELLO=
TEST=

となってしまうのはおそらく意図した動きでないので(少なくとも普段自分が書いている限りでは)

# SAMPLE=ENV
HELLO=
TEST=

のようにコメント部分は避けてくれます。

また、CLI部分を書くのには下のライブラリを利用させてもらいました。 github.com

最後に

  • .env.exmaple を簡単につくるツールを紹介しました。
  • 何回か自分で使ってみて便利だったので今回書いてみました。
  • Goの勉強になってよかったです。

来週末Pythonもくもく会を開催するので茨城周辺に住んでいる方はぜひぜひご参加くださいー!

tskubapy.connpass.com