in dotTrace-agent/src/main/java/jetbrains/buildServer/dotTrace/agent/DotTraceSetupBuilder.java [55:86]
public Iterable<CommandLineSetup> build(@NotNull final CommandLineSetup baseSetup) {
if(myAssertions.contains(RunnerAssertions.Assertion.PROFILING_IS_NOT_ALLOWED)) {
return Collections.singleton(baseSetup);
}
final String dotTraceTool = myParametersService.tryGetRunnerParameter(Constants.USE_VAR);
if (StringUtil.isEmptyOrSpaces(dotTraceTool) || !Boolean.parseBoolean(dotTraceTool)) {
return Collections.singleton(baseSetup);
}
final List<CommandLineResource> resources = new ArrayList<CommandLineResource>(baseSetup.getResources());
final File cmdFile = myFileService.getTempFileName(DOT_TRACE_CMD_EXT);
final File projectFile = myFileService.getTempFileName(DOT_TRACE_PROJECT_EXT);
final File snapshotFileDir = myFileService.getTempFileName("");
if(!myFileService.exists(snapshotFileDir)) {
// TODO: use FileService.createDirectories(path) instead
snapshotFileDir.mkdirs();
}
final File snapshotFile = new File(snapshotFileDir, DOT_TRACE_SNAPSHOT_FILE);
final File patternsFile = myFileService.getTempFileName(DOT_TRACE_PATTERNS_EXT);
final File reportFile = myFileService.getTempFileName(DOT_TRACE_REPORT_EXT);
final Context ctx = new Context(baseSetup, projectFile, snapshotFile, patternsFile, reportFile);
resources.add(new CommandLineFile(myBeforeBuildPublisher, projectFile, myProjectGenerator.create(ctx)));
resources.add(new CommandLineFile(myBeforeBuildPublisher, patternsFile, myPatternGenerator.create(ctx)));
resources.add(new CommandLineFile(myBeforeBuildPublisher, cmdFile, myCmdGenerator.create(ctx)));
resources.add(new CommandLineArtifact(myDotTraceBuildPublisher, reportFile));
resources.add(new CommandLineArtifact(myDotTraceSnapshotsPublisher, snapshotFile));
return Collections.singleton(new CommandLineSetup(cmdFile.getPath(), Collections.<CommandLineArgument>emptyList(), resources));
}