rksoftware

Visual Studio とか C# とかが好きです

CakeBuild で引数を使う

Cake では実行するタスクを引数で指定することができます。
引数で指定するとスクリプトの次の部分の変数 target に与えた値が入ります。引数を与えていない場合は、次のコードで指定されているデフォルト値 Default が設定されます。

var target = Argument("target", "Default");

■ 試してみるスクリプト

次のスクリプトで動作を見てみます。

var target = Argument("target", "Default");
var name = Argument("name", "World");

Task("Default").Does(() =>
{
  Information($"Hello {name}!");
  Information(name.GetType().FullName);
});

RunTarget(target);

■ 引数なしで実行

>.\tools\Cake\Cake

========================================
Default
========================================
Hello World!
System.String

Task                          Duration
--------------------------------------------------
Default                       00:00:00.0263882
--------------------------------------------------
Total:                        00:00:00.0263882

デフォルト値である Default として実行されました。
ついでにこっそり表示していた、変数 target の型が string であるとこも確認できます。

■ 引数をつけて実行

今度は、C# という引数を与えて実行してみます。
引数は

Cake -name=C#

のように、

Cake -[ Argument の第一引数の値 ]=[ 与える引数(デフォルト値は Argunment の第二引数の値) ]

という指定をします。

実行結果

>.\tools\Cake\Cake -name=C#

========================================
Default
========================================
Hello C#!
System.String

Task                          Duration
--------------------------------------------------
Default                       00:00:00.0226930
--------------------------------------------------
Total:                        00:00:00.0226930

狙い通り、name の値が C# としてタスクが実行されました。

※CakeBuild を試してみた記事の目次です。