ファイルから環境変数を設定してコマンドを実行する「envfile」を作った
こんにちは。齋藤です。 今回は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とかと組み合わせると楽しいかもしれませんね。