in appengine-plugins-core/src/main/java/com/google/cloud/tools/managedcloudsdk/ManagedCloudSdk.java [138:169]
public boolean isUpToDate() throws ManagedSdkVerificationException {
if (!Files.isRegularFile(getGcloudPath())) {
return false;
}
if (version != Version.LATEST) {
return true;
}
List<String> updateAvailableCommand =
Arrays.asList(
getGcloudPath().toString(),
"components",
"list",
"--format=json",
"--filter=state.name:Update Available");
try {
String result = CommandCaller.newCaller().call(updateAvailableCommand, null, null);
for (CloudSdkComponent component : CloudSdkComponent.fromJsonList(result)) {
State state = component.getState();
if (state != null) {
if ("Update Available".equals(state.getName())) {
return false;
}
}
}
return true;
} catch (CommandExecutionException | InterruptedException | CommandExitException ex) {
throw new ManagedSdkVerificationException(ex);
}
}