utils 代码库规则

报告问题 查看源代码 每夜 build · 7.4 . 7.3 · 7.2 · 7.1 · 7.0敬上 · 6.5

您可以从 @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 必填字段。

要读取的网址列表

返回

可传递给 repository_ctx.download 的 auth 字典

可能

maybe(repo_rule, name, kwargs)

实用函数,用于仅添加代码库(如果代码库尚不存在)。

这是为了实现 中载述的安全 repositories.bzl 宏 https://bazel.build/rules/deploying#dependencies.

参数

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)

修补已提取的代码库的实现。

此规则旨在用于 代码库规则如果参数 patchespatch_tool、 未指定 patch_argspatch_cmdspatch_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 用于将机器名称映射到包含相应机器名称的 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 适合用作 ctx.download 的 auth 参数;更准确地说, 会将 netrc 文件提供登录和密码的所有网址映射到 包含相应登录信息、密码和可选授权模式的 dict, 以及“type”参数的更改为“基本”或“pattern”

workspace_and_buildfile

workspace_and_buildfile(ctx)

用于编写 WORKSPACE 和(如果需要)BUILD 文件的实用函数。

此规则旨在用于 代码库规则。 它假定参数 namebuild_filebuild_file_contentworkspace_fileworkspace_file_content 存在于 ctx.attr;后四位可能的值为 None。

参数

ctx 必填字段。

调用此实用程序的代码库规则的代码库上下文 函数。