in app-maven-plugin/src/main/java/com/google/cloud/tools/maven/cloudsdk/CloudSdkDownloader.java [51:90]
public Path downloadIfNecessary(
String version, Log log, List<SdkComponent> components, boolean offline) {
ManagedCloudSdk managedCloudSdk = managedCloudSdkFactory.apply(version);
if (offline) { // in offline mode, don't download anything
return managedCloudSdk.getSdkHome();
}
try {
ProgressListener progressListener = new NoOpProgressListener();
ConsoleListener consoleListener = new CloudSdkDownloaderConsoleListener(log);
if (!managedCloudSdk.isInstalled()) {
managedCloudSdk.newInstaller().install(progressListener, consoleListener);
}
// install requested components
if (components != null) {
for (SdkComponent component : components) {
if (!managedCloudSdk.hasComponent(component)) {
managedCloudSdk
.newComponentInstaller()
.installComponent(component, progressListener, consoleListener);
}
}
}
if (!managedCloudSdk.isUpToDate()) {
managedCloudSdk.newUpdater().update(progressListener, consoleListener);
}
return managedCloudSdk.getSdkHome();
} catch (IOException
| SdkInstallerException
| ManagedSdkVersionMismatchException
| InterruptedException
| CommandExecutionException
| CommandExitException
| ManagedSdkVerificationException ex) {
throw new RuntimeException(ex);
}
}