mirror of https://github.com/mongodb/mongo
66 lines
2.3 KiB
Python
66 lines
2.3 KiB
Python
"""Repository rules for codeowners validator download"""
|
|
|
|
load("//utils:downloads.bzl", "retry_download_and_extract")
|
|
load("//utils:platforms_normalize.bzl", "ARCH_NORMALIZE_MAP", "OS_NORMALIZE_MAP")
|
|
|
|
URLS_MAP = {
|
|
"linux_aarch64": {
|
|
"sha": "12615dc4b6051371abf95413efbc33a62aaa4aa5c23e2ff2fbdb8c682d51637d",
|
|
"url": "https://github.com/mongodb-forks/codeowners-validator/releases/download/v0.1.5/codeowners-validator_Linux_arm64.tar.gz",
|
|
},
|
|
"linux_x86_64": {
|
|
"sha": "40899685b2b24667710a7775fbdba773dc24c8dbbc44bced7a9ddcec2ffaf3c1",
|
|
"url": "https://github.com/mongodb-forks/codeowners-validator/releases/download/v0.1.5/codeowners-validator_Linux_x86_64.tar.gz",
|
|
},
|
|
"macos_aarch64": {
|
|
"sha": "02f82172bdeeb3819bded9544ff96440c57d9545253fe39e2eb603b6a17ec550",
|
|
"url": "https://github.com/mongodb-forks/codeowners-validator/releases/download/v0.1.5/codeowners-validator_Darwin_arm64.tar.gz",
|
|
},
|
|
"macos_x86_64": {
|
|
"sha": "9ea30001ff6e9748c5e2095c850a58a7f4db4ccd6ab6fd1718c701dfe029e94f",
|
|
"url": "https://github.com/mongodb-forks/codeowners-validator/releases/download/v0.1.5/codeowners-validator_Darwin_x86_64.tar.gz",
|
|
},
|
|
}
|
|
|
|
def _codeowners_validator_download(ctx):
|
|
"""
|
|
Downloads a codeowners validator binary
|
|
|
|
Args:
|
|
ctx: Repository context.
|
|
"""
|
|
os = ctx.os.name
|
|
arch = ctx.os.arch
|
|
os_constraint = OS_NORMALIZE_MAP[os]
|
|
arch_constraint = ARCH_NORMALIZE_MAP[arch]
|
|
platform_info = URLS_MAP["{os}_{arch}".format(os = os_constraint, arch = arch_constraint)]
|
|
ctx.report_progress("downloading codeowners validator")
|
|
retry_download_and_extract(
|
|
ctx = ctx,
|
|
tries = 5,
|
|
url = platform_info["url"],
|
|
sha256 = platform_info["sha"],
|
|
)
|
|
|
|
ctx.file(
|
|
"BUILD.bazel",
|
|
"""
|
|
package(default_visibility = ["//visibility:public"])
|
|
exports_files(["codeowners-validator"])
|
|
""",
|
|
)
|
|
|
|
return None
|
|
|
|
_codeowners_validator = repository_rule(
|
|
implementation = _codeowners_validator_download,
|
|
attrs = {},
|
|
)
|
|
|
|
def codeowners_validator():
|
|
_codeowners_validator(name = "codeowners_validator")
|
|
|
|
codeowners_validator_extension = module_extension(
|
|
implementation = lambda ctx: _codeowners_validator(name = "codeowners_validator"),
|
|
)
|