mirror of https://github.com/mongodb/mongo
46 lines
1.3 KiB
Python
46 lines
1.3 KiB
Python
import hashlib
|
|
import os
|
|
import pathlib
|
|
import platform
|
|
import subprocess
|
|
|
|
ARCH_NORMALIZE_MAP = {
|
|
"amd64": "x86_64",
|
|
"x86_64": "x86_64",
|
|
"arm64": "aarch64",
|
|
"aarch64": "aarch64",
|
|
"ppc64le": "ppc64le",
|
|
"s390x": "s390x",
|
|
}
|
|
|
|
def get_mongo_arch(args):
|
|
arch = platform.machine().lower()
|
|
if arch in ARCH_NORMALIZE_MAP:
|
|
return ARCH_NORMALIZE_MAP[arch]
|
|
else:
|
|
return arch
|
|
|
|
def get_mongo_version(args):
|
|
proc = subprocess.run(["git", "describe", "--abbrev=0"], capture_output=True, text=True)
|
|
return proc.stdout.strip()[1:]
|
|
|
|
def write_mongo_variables_bazelrc(args):
|
|
mongo_version = get_mongo_version(args)
|
|
mongo_arch = get_mongo_arch(args)
|
|
|
|
repo_root = pathlib.Path(os.path.abspath(__file__)).parent.parent.parent
|
|
version_file = os.path.join(repo_root, ".bazelrc.mongo_variables")
|
|
existing_hash = ""
|
|
if os.path.exists(version_file):
|
|
with open(version_file, encoding="utf-8") as f:
|
|
existing_hash = hashlib.md5(f.read().encode()).hexdigest()
|
|
|
|
bazelrc_contents = f"""
|
|
common --define=MONGO_ARCH={mongo_arch}
|
|
common --define=MONGO_VERSION={mongo_version}
|
|
"""
|
|
current_hash = hashlib.md5(bazelrc_contents.encode()).hexdigest()
|
|
if existing_hash != current_hash:
|
|
with open(version_file, "w", encoding="utf-8") as f:
|
|
f.write(bazelrc_contents)
|