Goでちょっとしたツールを作った

Go言語のレベルアップを目的としてちょっとしたツールを2つ作った。

license

naoty/license

MITライセンスファイル(LICENSE)を作成するとき、いつもMIT License | Choose a Licenseからコピペしていた。さすがに毎回同じことをするのは面倒になってきたのでテンプレートからテキストを生成するだけのコマンドラインツールを書いた。text/templateを使ったことがなかったのでちょうどいい練習になった。

brewery

naoty/brewery

Goで書いたコマンドラインツールはnaoty/homebrew-miscからHomebrewでインストールできるようにしている。その準備をするためにformulaを作るとき、brew create <url> --tap naoty/miscを実行していた。しかし、この方法だと/usr/local/Homebrew/Library/Taps/naoty/homebrew-misc/以下にformulaが作成されてしまい、その後ワークスペースにコピペする作業が発生していた。

そこで、formulaをテンプレートから生成して標準出力に出力するだけのコマンドラインツールを作った。SHA256もちゃんと計算してくれるので便利。今後はformulaを書く作業が捗りそう。

学び

  • text/templateの使い方。Webアプリケーションを開発するのであれば、同じようなパッケージであるhtml/templateが確実に必要になるので、覚えておきたかった。
  • https://github.com/jteeuwen/go-bindataによってテンプレートをバイナリに含めること。これもテンプレートを使う以上シングルバイナリにして配布を簡単にするために必要になるだろう。
  • golang/depの使い方。おおかたの仕様についてはstableになったとのことなので、今から使い方に慣れておきたい。dep ensureのバリエーションとGopkg.tomlの書き方をもう少し把握したい。