上のライブラリを使ったサンプルをよく使うであろうPowerShellで。
まずは、GarminSDKとJungleの一部を使い、ビルドを実行するもの。
# AutomationConnectIQ.Libの記述が面倒なので以下の設定をしておく
using namespace AutomationConnectIQ.Lib;
# SDK環境の作成
$sdk = New-Object GarminSDK -Property @{
Key = "developer_key" # デベロッパーキーを指定する
}
# プロジェクトファイルの読み込み
$proj = New-Object Jungle("monkey.jungle")
# プロジェクトのビルド
# 実行形式はプロジェクトの下のbinの下に配置。
$sdk.BuildProgram($proj, "fr45")
# プロジェクトのビルド
# 実行形式は、パラメータで指定する。(下の例は%TEMP%\hoge.prg)
$sdk.BuildProgram($proj, "fr45", $env:temp + "\hoge.prg")
# 全デバイスのビルド
# 出力ファイルは %TEMP%\devicename.prg
# ビルドのログは、%TEMP%\output.txtに保存される
$filename = Join-Path $env:TEMP "output.txt"
$tw = New-Object System.IO.StreamWriter($filename, $false, [Text.Encoding]::GetEncoding("UTF-8"))
$sdk.Writer = $tw # GarminSDK内で発生するログの出力先を設定する
# 全ターゲットをビルドする
foreach ($dev in $proj.Devices) {
$tw.WriteLine($sdk.BuildProgram($proj, $dev, $(Join-Path $env:TEMP $dev".prg")))
}
$sdk.Writer = $null # ログの出力を解除(出力先をクローズする前に必ず実施)
$tw.Close()
- 6行目はビルドを行う際のデベロッパーキーファイルを指定する実装になる。
この設定をしない場合、ビルドは必ず失敗するので注意。 - 13行目のビルド処理は、指定されたデバイスに対して標準の場所にプログラムをビルドするコマンドになる。
対して17行目のビルド処理は、指定されたファイル名でプログラムをビルドするコマンド。 - 22~24行目のコードは、ビルドコマンド内で発生したログを、指定されたファイルにリダイレクトするための実装になる。
これを利用した場合、29、30行目の後処理も実装しておかないと、スクリプトに問題が出るかもしれないので、要注意。 - 26~28行目は、プロジェクトに登録されている全ターゲットに対してプログラムのビルドを行う実装方法になる。
コメント