in src/main/java/org/apache/netbeans/nbpackage/ExecutionContext.java [235:258]
public String execAndGetOutput(ProcessBuilder processBuilder) throws IOException, InterruptedException {
boolean showOutput = isVerbose();
Path tmp = Files.createTempFile("nbpackage", ".tmp");
processBuilder.redirectOutput(tmp.toFile());
processBuilder.redirectError(showOutput ? ProcessBuilder.Redirect.PIPE
: ProcessBuilder.Redirect.DISCARD);
Process p = processBuilder.start();
if (showOutput) {
var info = configuration.infoHandler();
var warning = configuration.warningHandler();
executor.submit(() -> {
try ( var in = new BufferedReader(new InputStreamReader(p.getErrorStream()))) {
in.lines().forEachOrdered(info);
} catch (IOException ex) {
warning.accept(ex.getClass().getSimpleName());
}
});
}
p.waitFor();
String out = Files.readString(tmp);
Files.delete(tmp);
return out;
}