in terraform-client/src/main/java/com/microsoft/terraform/TerraformClient.java [99:116]
private CompletableFuture<Boolean> run(String... commands) throws IOException {
assert commands.length > 0;
ProcessLauncher[] launchers = new ProcessLauncher[commands.length];
for (int i = 0; i < commands.length; i++) {
launchers[i] = this.getTerraformLauncher(commands[i]);
}
CompletableFuture<Integer> result = launchers[0].launch().thenApply(c -> c == 0 ? 1 : -1);
for (int i = 1; i < commands.length; i++) {
result = result.thenCompose(index -> {
if (index > 0) {
return launchers[index].launch().thenApply(c -> c == 0 ? index + 1 : -1);
}
return CompletableFuture.completedFuture(-1);
});
}
return result.thenApply(i -> i > 0);
}