blob: 23b496e61bf15da370f417cd21c6a4e99081e4d8 [file] [edit]
def _dmg_archive_impl(repository_ctx):
url = repository_ctx.attr.url
(ignored, ignored, dmg_name) = url.rpartition("/")
dmg_name = dmg_name.replace("%20", "_")
attrs = {
"output": dmg_name,
}
if repository_ctx.attr.sha256:
attrs.update({"sha256": repository_ctx.attr.sha256})
repository_ctx.download(
url,
**attrs
)
zip_name = dmg_name.replace(".dmg", ".zip")
repository_ctx.execute([
repository_ctx.path(Label("@selenium//common/private:convert_dmg.sh")),
dmg_name,
zip_name,
])
repository_ctx.extract(
archive = zip_name,
stripPrefix = repository_ctx.attr.strip_prefix,
output = repository_ctx.attr.output,
)
repository_ctx.file(
"BUILD.bazel",
repository_ctx.attr.build_file_content,
)
dmg_archive = repository_rule(
_dmg_archive_impl,
attrs = {
"url": attr.string(
mandatory = True,
),
"sha256": attr.string(),
"strip_prefix": attr.string(),
"output": attr.string(),
"build_file_content": attr.string(),
"build_file": attr.label(),
},
)