blob: b5cc986ec16438299afba0e6b3d96df45cb7ae2c [file] [log] [blame]
""" Helpers to parse and check version of bazel."""
def extract_version_number(bazel_version_fallback):
"""Extracts the semantic version number from a version string
Args:
bazel_version: the version string that begins with the semantic version
e.g. "1.2.3rc1 abc1234" where "abc1234" is a commit hash.
Returns:
The semantic version string, like "1.2.3".
"""
bazel_version = _check_bazel_version(bazel_version_fallback)
for i in range(len(bazel_version)):
c = bazel_version[i]
if not (c.isdigit() or c == "."):
return bazel_version[:i]
return bazel_version
def parse_rc(bazel_version):
if bazel_version.find("rc") != -1:
rc = ""
for i in range(len(bazel_version) - bazel_version.find("rc") - 2):
c = bazel_version[i + bazel_version.find("rc") + 2]
if not c.isdigit():
if rc == "":
return -1
break
rc += c
return int(rc)
def _check_bazel_version(bazel_version_fallback):
if "bazel_version" not in dir(native):
fail("\nCurrent Bazel version is lower than 0.2.1 and is not supported with rbe_autoconfig.")
elif not native.bazel_version:
print(("\nCurrent running Bazel is not a release version and one " +
"was not defined explicitly in rbe_autoconfig target. " +
"Falling back to '%s'") % bazel_version_fallback)
return bazel_version_fallback
return native.bazel_version