public ConsoleParameters(string[] args)
{
Contract.Requires(args != null);
var gp = new List<string>();
var remainingParams = new List<string>();
int i = 0;
for (; i < args.Length; i++)
{
string current = args[i];
if (IsGlobalParameter(current))
{
gp.Add(current);
int xtraCount = GetGlobalParameterExtraArgCount(current);
for (int j = 0; j < xtraCount; j++)
gp.Add(args[i + j + 1]);
i += xtraCount;
}
else
break;
}
remainingParams.AddRange(args.Skip(i));
globalParams = gp.ToArray();
if (remainingParams.Count > 0)
{
cmd = remainingParams[0];
cmdParams = new string[remainingParams.Count - 1];
for (int j = 1; j < remainingParams.Count; j++)
cmdParams[j - 1] = remainingParams[j];
}
else
{
// Default command is 'help':
cmd = "help";
cmdParams = new string[0];
}
}