標準愚痴出力

個人的なIT作業ログです。もしかしたら一般的に参考になることが書いているかもしれません(弱気

PowerShell で書く、Go言語プログラムのリリース管理的なアレ(2)バージョン文字列の取得

方針としては

  • リリースビルドの時は、テキストファイル(Misc\version.txt)に記載のテキスト
  • スナップショットの時は、git describe --tags の結果

を使うことにしている。これはバッチファイルでも比較的簡単だ。 リリースビルドなら

for /F %%I in (%~dp0Misc\version.txt) do set "VERSION=%%I"

だし、スナップショットなら

for /F %%I in ('git describe --tags') do set "X_VERSION=-X main.version=%%I"

だ(若干変数が違うがスルーしていただきたい)。

これが PowerShell だと、もっと簡単で、リリースビルド:

Build  (Get-Content Misc\version.txt)  ""

となる。Build はビルドするための関数で第一引数のバージョン文字列を取る形になっている。スナップショットは

 Build (git describe --tags) ""

だけで済む。PowerShell では括弧が逆クォート的な役割を担っている(文法的には式を展開する的な意味)。

うん、つまらないところなので、早くも飽きてきた(おい)。 次はもう少し面白いはずの、バージョンを設定するところを書こう。