public void registerStreamEventHandler(@NotNull StreamEventHandler handler) {
myHandlers.put(handler.getEventType(), handler);
}
private KillableColoredProcessHandler startServer(@NotNull KarmaServerSettings serverSettings) throws IOException {
GeneralCommandLine commandLine = new GeneralCommandLine();
KarmaRunSettings runSettings = serverSettings.getRunSettings();
commandLine.setPassParentEnvironment(runSettings.isPassParentEnvVars());
commandLine.getEnvironment().putAll(runSettings.getEnvVars());
commandLine.setWorkDirectory(serverSettings.getConfigurationFile().getParentFile());
commandLine.setExePath(serverSettings.getNodeInterpreterPath());
File serverFile = myKarmaJsSourcesLocator.getServerAppFile();
//commandLine.addParameter("--debug-brk=34598");
commandLine.addParameter(serverFile.getAbsolutePath());
commandLine.addParameter("--karmaPackageDir=" + myKarmaJsSourcesLocator.getKarmaPackageDir().getAbsolutePath());
commandLine.addParameter("--configFile=" + serverSettings.getConfigurationFilePath());
String browsers = serverSettings.getRunSettings().getBrowsers();
if (!browsers.isEmpty()) {
commandLine.addParameter("--browsers=" + browsers);
}
if (myCoveragePeer != null) {
commandLine.addParameter("--coverageTempDir=" + myCoveragePeer.getCoverageTempDir());
}
final Process process;
try {
process = commandLine.createProcess();
}
catch (ExecutionException e) {
throw new IOException("Can not start Karma server: " + commandLine.getCommandLineString(), e);
}
LOG.info("Karma server " + System.identityHashCode(process) + " started successfully: "
+ commandLine.getCommandLineString());
KillableColoredProcessHandler processHandler = new KillableColoredProcessHandler(
process,
commandLine.getCommandLineString(),
CharsetToolkit.UTF8_CHARSET
);
processHandler.addProcessListener(new ProcessAdapter() {
@Override