以下函数可以从 @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)
用于下载远程文件的实用函数。
此规则旨在用于代码库规则的实现函数。它假定 ctx.attr 中存在参数 remote_file_urls 和
remote_file_integrity。
现有文件将被覆盖。
参数
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 的身份验证字典
maybe
load("@bazel//tools/build_defs/repo:utils.bzl", "maybe")
maybe(repo_rule, name, **kwargs)
用于仅在代码库尚不存在时添加代码库的实用函数。
这是为了实现 https://bazel.build/rules/deploying#dependencies 中记录的安全 repositories.bzl 宏。
参数
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 |
可选。默认值为 "a .netrc file"
要在错误消息中使用的文件名(如果有)。 |
返回
将机器名称映射到包含有关这些机器的信息的字典的字典
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 |
必需。
调用此实用函数的代码库规则的代码库上下文。 |
返回
将机器名称映射到包含有关这些机器的信息的字典的字典。
symlink_files
load("@bazel//tools/build_defs/repo:utils.bzl", "symlink_files")
symlink_files(ctx)
用于对本地文件进行符号链接的实用函数。
此函数旨在用于代码库规则的实现函数。它假定 ctx.attr 中存在参数 files。
现有文件将被覆盖。
参数
ctx |
必需。
调用此实用程序函数的代码库规则的代码库上下文。 |
update_attrs
load("@bazel//tools/build_defs/repo:utils.bzl", "update_attrs")
update_attrs(orig, keys, override)
用于更改指定属性并将其添加到特定代码库规则调用的实用函数。
这用于使规则可重现。
参数
orig |
必需。
由特定规则调用实际设置的属性(显式或隐式)的字典 |
keys |
必需。
在此规则上定义的全套属性 |
override |
必需。
要替换或添加到 orig 的属性的字典 |
返回
包含从 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 |
必需。
网址到授权模式的可选字典 |
返回
适合作为 ctx.download 的身份验证实参的字典;更准确地说,该字典会将 netrc 文件提供登录名和密码的所有网址映射到包含相应登录名、密码和可选授权模式的字典,以及“type”到“basic”或“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 在 ctx.attr 中存在;后两个参数的值可能为 None。
参数
ctx |
必需。
调用此实用程序函数的代码库规则的代码库上下文。 |