in appengine-plugins-core/src/main/java/com/google/cloud/tools/appengine/operations/GcloudRunner.java [80:118]
void run(List<String> arguments, @Nullable Path workingDirectory)
throws ProcessHandlerException, CloudSdkNotFoundException, CloudSdkOutOfDateException,
CloudSdkVersionFileException, IOException {
sdk.validateCloudSdk();
List<String> command = new ArrayList<>();
command.add(sdk.getGCloudPath().toAbsolutePath().toString());
command.addAll(arguments);
if (outputFormat != null) {
command.addAll(GcloudArgs.get("format", outputFormat));
}
if (verbosity != null) {
command.addAll(GcloudArgs.get("verbosity", verbosity));
}
if (credentialFile != null) {
command.addAll(GcloudArgs.get("credential-file-override", credentialFile));
}
if (flagsFiles != null) {
for (Path flagFile : flagsFiles) {
command.addAll(GcloudArgs.get("flags-file", flagFile));
}
}
logger.info("submitting command: " + Joiner.on(" ").join(command));
ProcessBuilder processBuilder = processBuilderFactory.newProcessBuilder();
processBuilder.command(command);
if (workingDirectory != null) {
processBuilder.directory(workingDirectory.toFile());
}
processBuilder.environment().putAll(getGcloudCommandEnvironment());
Process process = processBuilder.start();
processHandler.handleProcess(process);
}