以下函数可以从 @bazel_tools//tools/build_defs/repo:utils.bzl
加载。
提取后用于操控外部仓库的实用程序。
初始设置
这些实用程序旨在供其他代码库规则使用。它们可以按如下方式加载。
load(
"@bazel_tools//tools/build_defs/repo:utils.bzl",
"workspace_and_buildfile",
"patch",
"update_attrs",
)
get_auth
get_auth(ctx, urls)
用于从 .netrc 文件获取一系列网址的正确身份验证字典的实用函数。
支持可选的 netrc 和 auth_patterns 属性(如果有)。
参数
ctx |
。
调用此实用函数的代码库规则的代码库上下文。 |
urls |
。
要读取的网址列表 |
返回
可传递给 repo_ctx.download 的身份验证字典
不确定
maybe(repo_rule, name, kwargs)
实用函数,用于仅在尚未添加仓库时添加仓库。
这是为了实现 https://bazel.build/rules/deploying#dependencies 中载述的 safe repositories.bzl 宏。
参数
repo_rule |
。
存储库规则函数。 |
name |
。
要创建的代码库的名称。 |
kwargs |
可选属性。
传递给 repo_rule 函数的剩余参数。 |
返回
什么都不用做,会根据需要定义仓库(附带效应)。
parse_netrc
parse_netrc(contents, filename)
用于解析至少一个基本 .netrc 文件的实用函数。
参数
contents |
。
解析器的输入。 |
filename |
可选属性。默认值为 None 要在错误消息中使用的文件名(如果有)。 |
返回
将机器名称映射到字典(其中包含提供的相关信息)
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
read_netrc(ctx, filename)
用于解析至少一个基本 .netrc 文件的实用函数。
参数
ctx |
。
调用此实用函数的代码库规则的代码库上下文。 |
filename |
。
要读取的 .netrc 文件的名称 |
返回
将机器名称映射到字典(其中包含提供的相关信息)
read_user_netrc
read_user_netrc(ctx)
读取用户的默认 netrc 文件。
参数
ctx |
。
调用此实用函数的代码库规则的代码库上下文。 |
返回
将机器名称映射到 dict,其中包含所提供的相关信息。
update_attrs
update_attrs(orig, keys, override)
用于更改指定属性并将其添加到特定代码库规则调用的实用函数。
这可让规则可重现。
参数
orig |
。
由特定规则调用实际设置(显式或隐式)属性的字典 |
keys |
。
此规则中定义的完整属性集 |
override |
。
要替换或添加到原始的属性的字典 |
返回
包含插入/已更新替换项的键的属性字典
use_netrc
use_netrc(netrc, urls, patterns)
根据解析后的 netrc 文件和网址列表计算身份验证字典。
参数
netrc |
。
已解析为字典的 netrc 文件,例如,从 read_netrc 中获取 |
urls |
。
网址列表。 |
patterns |
。
指向授权格式网址的可选字典 |
返回
dict 适合用作 QUERY.download 的 auth 参数;更确切地说,该 dict 会将 netrc 文件提供登录名和密码的所有网址映射到包含相应登录名、密码和可选授权模式以及“type”到“basic”或“pattern”的映射的字典。
workspace_and_buildfile
workspace_and_buildfile(ctx)
用于编写 WORKSPACE 以及根据请求写入 BUILD 文件的实用函数。
此规则旨在用于代码库规则的实现函数。它假定 ctx.attr
中存在参数 name
、build_file
、build_file_content
、workspace_file
和 workspace_file_content
;后四个参数可能具有值 None。
参数
ctx |
。
调用此实用函数的代码库规则的代码库上下文。 |