in plugins/elastic-conventions/src/main/java/co/elastic/gradle/elastic_conventions/ElasticConventionsPlugin.java [200:222]
static String execAndGetStdOut(String... args) {
Runtime runtime = Runtime.getRuntime();
Process process;
try {
process = runtime.exec(args);
} catch (IOException e) {
throw new RuntimeException(e);
}
try (Reader standard = new BufferedReader(new InputStreamReader(process.getInputStream(), Charset.defaultCharset()))) {
try (Reader error = new BufferedReader(new InputStreamReader(process.getErrorStream(), Charset.defaultCharset()))) {
String standardText = readFully(standard);
String ignore = readFully(error);
boolean finished = process.waitFor(10, TimeUnit.SECONDS);
return finished && process.exitValue() == 0 ? trimAtEnd(standardText) : null;
}
} catch (IOException | InterruptedException e) {
throw new RuntimeException(e);
} finally {
process.destroyForcibly();
}
}