| """Repository rule to download the docfx NuGet package.""" |
| |
| _BUILD = """ |
| package(default_visibility = ["//visibility:public"]) |
| exports_files(glob(["**/*"])) |
| filegroup(name = "docfx_dll", srcs = ["tools/net8.0/any/docfx.dll"]) |
| """ |
| |
| def _docfx_repo_impl(ctx): |
| ctx.download_and_extract( |
| url = "https://api.nuget.org/v3-flatcontainer/docfx/{0}/docfx.{0}.nupkg".format(ctx.attr.version), |
| sha256 = ctx.attr.sha256, |
| type = "zip", |
| ) |
| ctx.file("BUILD.bazel", _BUILD) |
| |
| docfx_repo = repository_rule( |
| implementation = _docfx_repo_impl, |
| attrs = { |
| "version": attr.string(mandatory = True), |
| "sha256": attr.string(mandatory = True), |
| }, |
| ) |
| |
| def _docfx_extension_impl(module_ctx): |
| docfx_repo( |
| name = "docfx", |
| version = "2.78.5", |
| sha256 = "924a104075e4bf7eae9520147ec10a809e82a8438ec330104581d219435968c5", |
| ) |
| return module_ctx.extension_metadata(reproducible = True) |
| |
| docfx_extension = module_extension(implementation = _docfx_extension_impl) |