in java/com/google/devtools/bazel/e4b/command/BazelCommand.java [92:122]
public void checkVersion(String bazel) throws BazelNotFoundException {
File path = new File(bazel);
if (!path.exists() || !path.canExecute()) {
throw new BazelNotFoundException.BazelNotExecutableException();
}
try {
Command command = Command.builder(consoleFactory).setConsoleName(null)
.setDirectory(aspectLocation.getWorkspaceDirectory()).addArguments(bazel, "version")
.setStdoutLineSelector((s) -> s.startsWith("Build label:") ? s.substring(13) : null)
.build();
if (command.run() != 0) {
throw new BazelNotFoundException.BazelNotExecutableException();
}
List<String> result = command.getSelectedOutputLines();
if (result.size() != 1) {
throw new BazelNotFoundException.BazelTooOldException("unknown");
}
String version = result.get(0);
Matcher versionMatcher = VERSION_PATTERN.matcher(version);
if (versionMatcher == null || !versionMatcher.matches()) {
throw new BazelNotFoundException.BazelTooOldException(version);
}
int[] versionNumbers = {Integer.parseInt(versionMatcher.group(1)),
Integer.parseInt(versionMatcher.group(2)), Integer.parseInt(versionMatcher.group(3))};
if (compareVersion(versionNumbers, MINIMUM_BAZEL_VERSION) < 0) {
throw new BazelNotFoundException.BazelTooOldException(version);
}
} catch (IOException | InterruptedException e) {
throw new BazelNotFoundException.BazelNotExecutableException();
}
}