Golang Cafe #28 まとめ +ShingoIshimura氏 からのお題に挑戦

2014/05/04に開催された「Golang Cafe #28」についてのまとめです。
今回は+ShingoIshimura氏からのお題に挑戦しました。


こちらのソースコード
https://github.com/sinmetal/gcp-study/blob/id/deploygo/spike/tools/deploy/deploy.go
にあるようにappcfg.shをGoから叩こうというものでした。
(現在では完成版?がコミットされています)


最終的な要件は直接appcfg.shを実行するのではなく、Goで作成したコマンドから実行して標準入力を実行したappcfg.shの標準入力へ、appcfg.shからの標準出力を実行しているコマンドの標準出力へ入力or出力できれはよい、というものでした。


それを難しく捉えすぎてGoからappcfg.shを実行し、appcfg.shからの標準出力をGoのプログラム内で取得、解析し、appcfg.shの標準入力へGoのプログラムから出力しようとして大変苦戦しました。


Cmd.StdinPipeCmd.StdoutPipeを駆使して処理しようとしましたが、そのそものパイプの動作を勘違いしていたようで後から考えるとおかしな実装をしようとしていました。

まとめ

おかげさまでexecパッケージioパッケージのよい復習になりました。
次回こそはDockerのデーモン側のソースコードを読んでいくそうです。