PowerShell で書く、Go言語プログラムのリリース管理的なアレ(1)目次

NYAGOS は 4.2.1 まではバッチファイルで、以下の作業を行っていた。

  • 実行ファイルの作成
    • バージョン文字列の取得
      • リリース(make release)の時はテキストファイル(Misc\version.txt)
      • スナップショット(引数なし make)の時は git describe --tags を使用
    • バージョン文字列・アイコンの埋め込み
      • Go言語のソースへのバージョン文字列埋め込み
      • Windows のプロパティとしてのバージョン文字列・アイコンの埋め込み
    • nyagos.d 以下のファイルの EXE ファイル内への埋め込み(実は nyagos.d が存在しない場合にデフォルトとして利用するようになっている)
    • 必要最小限の go fmtDOSファイルシステムアーカイブビットを利用している)
    • 作成CPUアーキテクチャの判断
      • goarch.txt があれば、その中身を %GOARCH% に設定する
      • goarch.txt がなければ、go version の結果から %GOARCH% を設定(不要だが、後の処理を合わせるため)
    • 必要に応じて go generate の実行
  • リリース用 ZIP ファイル作成(make package)
  • C言語定数の Go ソース化(make constgcc)
  • make clean
  • make get(サブディレクトリ全部に対する go get
  • 実行ファイルのバージョン・アーキテクチャの確認(make status

NYAGOS 4.2.2 では、これらをだいたい PowerShell に置き換えた。

気が向いたら、順次説明してゆきたい