public bool Run(Suite suite, string[] parameters)
{
int effectiveLength = parameters.Length;
bool dumpMode = false;
bool dumpDepsMode = false;
if (effectiveLength > 0)
{
dumpMode = parameters[effectiveLength - 1] == "--dump";
dumpDepsMode = parameters[effectiveLength - 1] == "--dump-deps";
}
if (dumpMode || dumpDepsMode)
effectiveLength--;
if (effectiveLength < 2)
{
string targetStr;
if (effectiveLength == 0)
targetStr = String.Empty;
else
targetStr = parameters[0];
try
{
lastTargetStr = targetStr;
var target = targetParser.ParseTarget(targetStr);
RunWithProjects(target, dumpMode, dumpDepsMode);
return true;
}
catch (ArgumentException ex)
{
throw new InvalidCommandParameterException("build", ex.Message);
}
}
else
{
throw new InvalidCommandParameterException("build",
"The 'build' command must be called with zero or one module/project name parameter!");
}
}