ファイルから環境変数を設定してコマンドを実行する「envfile」を作った

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。齋藤です。 今回はgolangの記事ですが、golangの話、コードは出てきません。

はじめに

設定の保存に、個人的にenvfileを使うことがあるんですが これを使う場合、以下のような形で使うことがありました。

$ cat foo.env
TEST=2

$ env `cat foo.env` sh -c 'echo $TEST'
2

なにやらごちゃごちゃしているので、いい感じに使えるコマンドが欲しくなりました。

書いた

envfileというツールをgolangで書きました。

使い方は至ってシンプルです。

$ cat foo.env
TEST=2

$ envfile foo.env sh -c 'echo $TEST'
2

終わり

完全にネタっぽい上にエラーハンドリングもまともにしていないコマンドが出来上がりました。 また、これは完全に車輪の再発明です。

次の機会でお会いしましょう。 リポジトリはこちらです。

インストールして使ってみてください。

go get github.com/wreulicke/envfile

SSM Parameter Storeを使い倒すおまけも書いたので興味があればどうぞ。

おまけ

SSM Parameter Store からパラメータを env ファイルに書いておいて取ってきます。(これがやりたかった) 今回は Parameter Store から Amazon Linux の最新の AMI ID を取ってきます。

$ go get github.com/remind101/ssm-env

$ cat test.env
TEST=ssm:///aws/service/ami-amazon-linux-latest/amzn-ami-hvm-x86_64-ebs

$ envfile test.env ssm-env sh -c 'echo $TEST'
ami-88d038f7

これにenvsubstとかと組み合わせると楽しいかもしれませんね。

関連リンク