Go製の便利ツール envexample
小ネタですが、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で何か書く練習をしたかったので題材としてちょうど良かったというのもありました。
インストール
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の勉強になってよかったです。