package com.thoughtworks.gauge.inspection;
import com.thoughtworks.gauge.exception.GaugeNotFoundException;
import com.thoughtworks.gauge.settings.GaugeSettingsModel;
import com.thoughtworks.gauge.util.GaugeUtil;
import org.jetbrains.annotations.NotNull;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import static com.thoughtworks.gauge.util.GaugeUtil.getGaugeSettings;
class GaugeInspectionHelper {
@NotNull
static List<GaugeError> getErrors(File directory) {
try {
GaugeSettingsModel settings = getGaugeSettings();
ProcessBuilder processBuilder = new ProcessBuilder(settings.getGaugePath(), "--validate");
GaugeUtil.setGaugeEnvironmentsTo(processBuilder, settings);
processBuilder.directory(directory);
Process process = processBuilder.start();
process.waitFor();
String[] errors = GaugeUtil.getOutput(process.getInputStream(), "\n").split("\n");
return Arrays.stream(errors).map(GaugeError::getInstance).filter(Objects::nonNull).collect(Collectors.toList());
} catch (IOException | InterruptedException | GaugeNotFoundException e) {
e.printStackTrace();
}
return new ArrayList<>();
}
}