implementation
函数的参数。
成员
- 下载
- download_and_extract
- execute
- extension_metadata
- 文件
- is_dev_dependency
- 模块
- os
- 路径
- 读取
- report_progress
- root_module_has_non_dev_dependency
- 哪个
下载
struct module_ctx.download(url, output='', sha256='', executable=False, allow_fail=False, canonical_id='', auth={}, *, integrity='')将文件下载到所提供网址的输出路径,并返回包含
success
的结构体;如果下载成功完成,则返回一个 true
标志;如果成功,则返回包含 sha256
和 integrity
字段的文件哈希值。
参数
参数 | 说明 |
---|---|
url
|
string; or Iterable of strings ;必需引用同一文件的镜像网址列表。 |
output
|
string; or Label; or path ;
default = ''输出文件的路径(相对于代码库目录)。 |
sha256
|
default = '' 所下载文件的预期 SHA-256 哈希。此哈希值必须与所下载文件的 SHA-256 哈希值一致。省略 SHA-256 会带来安全风险,因为远程文件可能会发生变化。最好的情况是,省略此字段会使您的 build 具有非封闭性。为简化开发是可选操作,但应在交付之前进行设置。 |
executable
|
default = False 在所创建的文件上设置可执行标志,默认为 false。 |
allow_fail
|
default = False 如果设置此字段,则在返回值中指明错误,而不是在下载失败时引发错误 |
canonical_id
|
default = '' 如果设置,则将缓存命中限制为具有相同规范 ID 的缓存 |
auth
|
default = {} 用于指定某些网址的身份验证信息的可选字典。 |
integrity
|
default = '' 所下载文件的预期校验和,采用子资源完整性格式。此校验和必须与所下载文件的校验和一致。省略校验和会带来安全风险,因为远程文件可能会发生变化。最好的情况是,省略此字段会使您的 build 具有非封闭性。为简化开发是可选操作,但应在交付之前进行设置。 |
download_and_extract
struct module_ctx.download_and_extract(url, output='', sha256='', type='', stripPrefix='', allow_fail=False, canonical_id='', auth={}, *, integrity='', rename_files={})将文件下载到所提供网址的输出路径,提取该文件并返回包含
success
的结构体;如果下载成功完成,则返回一个 true
标志;如果成功,则返回该文件的哈希值(包含 sha256
和 integrity
字段)。
参数
参数 | 说明 |
---|---|
url
|
string; or Iterable of strings ;必需引用同一文件的镜像网址列表。 |
output
|
string; or Label; or path ;
default = ''将解压缩归档文件的目录的路径(相对于代码库目录)。 |
sha256
|
default = '' 所下载文件的预期 SHA-256 哈希。此哈希值必须与所下载文件的 SHA-256 哈希值一致。省略 SHA-256 会带来安全风险,因为远程文件可能会发生变化。最好的情况是,省略此字段会使您的 build 具有非封闭性。为简化开发是可选操作,但应在发布之前设置。如果提供,系统会先检查代码库缓存中是否存在具有给定哈希值的文件;只有在缓存中找不到该文件时才会尝试下载。下载成功后,该文件将被添加到缓存中。 |
type
|
default = '' 已下载文件的归档类型。默认情况下,存档类型根据网址的文件扩展名确定。如果该文件没有扩展名,您可以在此明确指定“zip”、“jar”、“war”、“aar”、“tar”、“tar.gz”、“tgz”、“tar.xz”、“txz”、“.tar.zst”、“.tzst”、“tar.bz2”、“.deb”或此处的“.deb”。 |
stripPrefix
|
default = '' 要从提取的文件中删除的目录前缀。 许多存档包含一个顶级目录,该目录包含存档中的所有文件。此字段可用于从提取的文件中删除前缀,无需在 build_file 中反复指定此前缀。
|
allow_fail
|
default = False 如果设置此字段,则在返回值中指明错误,而不是在下载失败时引发错误 |
canonical_id
|
default = '' 如果设置,则将缓存命中限制为具有相同规范 ID 的缓存 |
auth
|
default = {} 用于指定某些网址的身份验证信息的可选字典。 |
integrity
|
default = '' 所下载文件的预期校验和,采用子资源完整性格式。此校验和必须与所下载文件的校验和一致。省略校验和会带来安全风险,因为远程文件可能会发生变化。最好的情况是,省略此字段会使您的 build 具有非封闭性。为简化开发是可选操作,但应在交付之前进行设置。 |
rename_files
|
default = {} 可选字典,用于指定在提取期间要重命名的文件。如果归档条目的名称与某个键完全匹配,系统会将其重命名为该值,然后再调整任何目录前缀。此命令可用于提取包含非 Unicode 文件名的归档文件,或所含文件可提取到不区分大小写的文件系统上的同一路径的归档文件。 |
execute
exec_result module_ctx.execute(arguments, timeout=600, environment={}, quiet=True, working_directory="")执行参数列表指定的命令。该命令的执行时间受
timeout
限制(以秒为单位,默认为 600 秒)。此方法会返回一个包含命令输出的 exec_result
结构。environment
映射可用于替换要传递给进程的一些环境变量。
参数
参数 | 说明 |
---|---|
arguments
|
required 参数列表,第一个元素应该是要执行的程序的路径。 |
timeout
|
默认值 = 600 命令的时长上限(以秒为单位,默认值为 600 秒)。 |
environment
|
default = {} 强制设置将某些环境变量传递给进程。 |
quiet
|
default = True 如果应将 stdout 和 stderr 输出到终端, |
working_directory
|
default = "" 用于执行命令的工作目录。 可以相对于代码库根目录或绝对代码库。 |
extension_metadata
extension_metadata module_ctx.extension_metadata(root_module_direct_deps=None, root_module_direct_dev_deps=None)构建一个可以从模块扩展程序的实现函数返回的不透明对象,以将扩展程序生成的代码库的相关元数据提供给 Bazel。
参数
参数 | 说明 |
---|---|
root_module_direct_deps
|
sequence of strings; or string; or None ;
default = None扩展程序认为是根模块的直接依赖项的代码库的名称。如果根模块导入了其他代码库,或者没有通过 use_repo 导入所有这些代码库,则 Bazel 会在评估扩展程序时输出警告和修正命令。如果指定了
|
root_module_direct_dev_deps
|
sequence of strings; or string; or None ;
default = None扩展程序认为是根模块的直接开发依赖项的代码库的名称。如果根模块导入了其他代码库,或者没有在使用 use_extension(..., dev_dependency = True) 创建的扩展程序代理上通过 use_repo 导入所有这些代码库,则 Bazel 会在对扩展程序进行评估时输出警告和 Fixup 命令。如果指定了
|
文件
None module_ctx.file(path, content='', executable=True, legacy_utf8=True)在代码库目录中生成包含提供内容的文件。
参数
参数 | 说明 |
---|---|
path
|
string; or Label; or path ;必需的要创建的文件的路径,相对于代码库目录。 |
content
|
default = '' 要创建的文件的内容,默认情况下为空。 |
executable
|
default = True 为创建的文件设置可执行标志,默认为 true。 |
legacy_utf8
|
default = True 将文件内容编码为 UTF-8 编码,默认为 true。未来版本将更改默认设置并移除此参数。 |
is_dev_dependency
bool module_ctx.is_dev_dependency(tag)返回是否在 use_extension 调用的结果中使用
devDependency = True
指定了指定的标记。
参数
参数 | 说明 |
---|---|
tag
|
bazel_module_tag ;必需从 bazel_module.tags 获取的标记。 |
modules
list module_ctx.modules外部依赖关系图中使用此模块扩展程序的所有 Bazel 模块的列表,其中每个模块都是一个 bazel_module 对象,用于公开为此扩展程序指定的所有标记。系统会保证此字典的迭代顺序与广度优先搜索(从根模块开始)相同。
os
repository_os module_ctx.os用于访问系统信息的结构体。
path
path module_ctx.path(path)返回字符串、标签或路径中的路径。如果路径是相对路径,则它将相对于代码库目录进行解析。如果路径是一个标签,则会解析为相应文件的路径。请注意,远程仓库是在分析阶段执行的,因此不能依赖于目标结果(标签应指向未生成的文件)。如果路径为路径,则会按原样返回该路径。
参数
参数 | 说明 |
---|---|
path
|
string; or Label; or path ;必需根据其创建路径的字符串、标签或路径 |
阅读
string module_ctx.read(path)读取文件系统上文件的内容。
参数
参数 | 说明 |
---|---|
path
|
string; or Label; or path ;必需的要读取的文件的路径。 |
report_progress
None module_ctx.report_progress(status='')更新此代码库或模块扩展程序的提取进度状态
参数
参数 | 说明 |
---|---|
status
|
string ;
default = ''字符串,用于描述提取进度的当前状态 |
root_module_has_non_dev_dependency
bool module_ctx.root_module_has_non_dev_dependency根模块是否将此扩展程序用作非开发依赖项。
哪个
path module_ctx.which(program)返回相应程序的路径,如果路径中没有此类程序,则返回 None。
参数
参数 | 说明 |
---|---|
program
|
必需 要在路径中查找的程序。 |
None
。