package pl.touk.sputnik.processor.eslint;
import com.google.common.collect.Lists;
import pl.touk.sputnik.exec.ExternalProcess;
import java.util.Arrays;
import java.util.List;
class ESLintExecutor {
private static final String ESLINT_EXECUTABLE = "eslint";
private static final String[] ESLINT_OUTPUT_FORMAT = {"--format", "json"};
private static final String ESLINT_RCFILE_NAME = "--config";
private final String eslintRcFile;
ESLintExecutor(String eslintRcFile) {
this.eslintRcFile = eslintRcFile;
}
String runOnFile(String filePath) {
return new ExternalProcess().executeCommand(buildParams(filePath));
}
private String[] buildParams(String filePath) {
List<String> args = Lists.newArrayList(ESLINT_EXECUTABLE);
args.addAll(Arrays.asList(ESLINT_OUTPUT_FORMAT));
if (eslintRcFile != null) {
args.addAll(Arrays.asList(ESLINT_RCFILE_NAME, eslintRcFile));
}
args.add(filePath);
return args.toArray(new String[args.size()]);
}
}