您可以从
@bazel_tools//tools/build_defs/repo:utils.bzl
。
提取后用于处理外部代码库的实用程序。
设置
这些实用程序旨在供其他代码库规则使用。他们 按如下方式加载:
load(
"@bazel_tools//tools/build_defs/repo:utils.bzl",
"workspace_and_buildfile",
"patch",
"update_attrs",
)
download_remote_files
load("@bazel//tools/build_defs/repo:utils.bzl", "download_remote_files") download_remote_files(ctx, auth)
用于下载远程文件的实用函数。
此规则旨在用于
代码库规则它假设参数 remote_file_urls
和
remote_file_integrity
存在于 ctx.attr
中。
参数
ctx |
必填字段。
调用此实用程序的代码库规则的代码库上下文 函数。 |
auth |
可选属性。
默认值为 None
可选字典,用于指定部分网址的身份验证信息。 |
get_auth
load("@bazel//tools/build_defs/repo:utils.bzl", "get_auth") get_auth(ctx, urls)
用于从 .netrc 文件中为一系列网址获取正确授权字典的实用函数。
支持可选的 netrc 和 auth_patterns 属性(如果有)。
参数
ctx |
必填字段。
调用此实用程序的代码库规则的代码库上下文 函数。 |
urls |
必填字段。
要读取的网址列表 |
返回
可以传递给 repository_ctx.download 的身份验证字典
不确定
load("@bazel//tools/build_defs/repo:utils.bzl", "maybe") maybe(repo_rule, name, **kwargs)
实用函数,用于仅添加代码库(如果代码库尚不存在)。
这是为了实现 中载述的安全 repositories.bzl 宏 https://bazel.build/rules/deploying#dependencies.
参数
repo_rule |
必填字段。
代码库规则函数。 |
name |
必填字段。
要创建的代码库的名称 |
kwargs |
可选属性。
传递给 repo_rule 函数的其余参数。 |
返回
什么都不用做,在需要时定义仓库作为附带效应。
parse_netrc
load("@bazel//tools/build_defs/repo:utils.bzl", "parse_netrc") parse_netrc(contents, filename)
实用函数,用于至少解析一个基本 .netrc 文件。
参数
contents |
必填字段。
提供给解析器。 |
filename |
可选属性。
默认值为 None
文件名(如果有)。 |
返回
字典将机器名称映射到包含所提供信息的字典 关于他们
patch
load("@bazel//tools/build_defs/repo:utils.bzl", "patch") patch(ctx, patches, patch_cmds, patch_cmds_win, patch_tool, patch_args, auth)
修补已提取的代码库的实现。
此规则旨在用于
代码库规则如果参数 patches
、patch_tool
、
未指定 patch_args
、patch_cmds
和 patch_cmds_win
则它们来自 ctx.attr
。
参数
ctx |
必填字段。
调用此实用程序的代码库规则的代码库上下文 函数。 |
patches |
可选属性。
默认值为 None
要应用的补丁文件。字符串、标签或路径的列表。 |
patch_cmds |
可选属性。
默认值为 None
要运行修补的 Bash 命令,每次 是时候 bash -c。字符串列表 |
patch_cmds_win |
可选属性。
默认值为 None
用于修补的 Powershell 命令,已通过 一次一个地复制到 Powershell /c。字符串列表。如果 此参数的布尔值为 false,patch_cmds 将为 而此参数将被忽略。 |
patch_tool |
可选属性。
默认值为 None
要执行应用的修补工具的路径 补丁。字符串。 |
patch_args |
可选属性。
默认值为 None
要传递给修补工具的参数。字符串列表。 |
auth |
可选属性。
默认值为 None
可选字典,用于指定部分网址的身份验证信息。 |
read_netrc
load("@bazel//tools/build_defs/repo:utils.bzl", "read_netrc") read_netrc(ctx, filename)
实用函数,用于至少解析一个基本 .netrc 文件。
参数
ctx |
必填字段。
调用此实用程序的代码库规则的代码库上下文 函数。 |
filename |
必填字段。
要读取的 .netrc 文件的名称 |
返回
字典将机器名称映射到包含所提供信息的字典 关于他们
read_user_netrc
load("@bazel//tools/build_defs/repo:utils.bzl", "read_user_netrc") read_user_netrc(ctx)
读取用户的默认 netrc 文件。
参数
ctx |
必填字段。
调用此实用函数的代码库规则的代码库上下文。 |
返回
dict 用于将机器名称映射到包含相应机器名称的 dict。
update_attrs
load("@bazel//tools/build_defs/repo:utils.bzl", "update_attrs") update_attrs(orig, keys, override)
实用函数,用于在特定仓库规则调用中更改和添加指定属性。
这用于使规则可重现。
参数
orig |
必填字段。
实际设置的属性的字典(显式或隐式) 根据特定规则调用 |
keys |
必填字段。
此规则中定义的一组整套属性 |
override |
必填字段。
要覆盖或添加到原始的属性的字典 |
返回
包含已插入/已更新替换键的属性字典
use_netrc
load("@bazel//tools/build_defs/repo:utils.bzl", "use_netrc") use_netrc(netrc, urls, patterns)
根据已解析的 netrc 文件和网址列表计算身份验证词典。
参数
netrc |
必填字段。
已解析为字典的 netrc 文件,例如从 read_netrc |
urls |
必填字段。
网址列表。 |
patterns |
必填字段。
授权模式网址的可选字典 |
返回
dict 适合用作 ctx.download 的 auth 参数;更准确地说, 会将 netrc 文件提供登录和密码的所有网址映射到 包含相应登录名、密码和可选授权模式的 dict, 以及“type”参数的更改为“基本”或“pattern”
workspace_and_buildfile
load("@bazel//tools/build_defs/repo:utils.bzl", "workspace_and_buildfile") workspace_and_buildfile(ctx)
用于写入工作区和 BUILD 文件的实用函数。
此规则旨在用于
代码库规则。
它假定参数 name
、build_file
、build_file_content
、
workspace_file
和workspace_file_content
存在于 ctx.attr
;后四位可能的值为 None。
参数
ctx |
必填字段。
调用此实用程序的代码库规则的代码库上下文 函数。 |