public static ExitCode Run(string[] arguments)
{
Options options = new Options();
if (!options.ParseArguments(arguments)) {
Console.WriteLine(Options.Usage());
return ExitCode.Failure;
}
try {
List<Assembly> assemblies = GetAssemblies(options);
if (assemblies.Count == 0) {
Console.WriteLine(Options.Usage());
return ExitCode.Failure;
}
return RunAllInParallel(assemblies, options.GetRunOptions(), (uint)options.Threads).Result;
} catch (Exception ex) {
Console.WriteLine(ex.ToString());
return ExitCode.Error;
}
}