implementation
函数的参数。会员
属性
struct repository_ctx.attr访问特性值的结构体。这些值由用户提供(如果不是,则使用默认值)。
delete
bool repository_ctx.delete(path)删除文件或目录。返回一个布尔值,以指示相应调用是否实际删除了文件或目录。
参数
参数 | 说明 |
---|---|
path
|
string; or path ;必需要删除的文件的路径,相对于代码库目录或绝对路径。可以是路径或字符串。 |
download
struct repository_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 具有非封闭性。为简化开发工作是可选的,但应在配送之前设置。 |
下载并提取
struct repository_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”“.bbz”或“.bb2” |
stripPrefix
|
default = '' 用于从提取的文件中移除的目录前缀。 许多归档文件都包含一个顶级目录,其中包含归档文件中的所有文件。通过此字段,无需在 build_file 中反复指定此前缀,即可将其从提取的文件中移除。
|
allow_fail
|
default = False 设置后,可指示返回值中的错误,而不是针对下载失败引发错误 |
canonical_id
|
default = '' 如果已设置,则会将缓存命中限制为将文件添加到缓存中且具有相同规范 ID 的情况 |
auth
|
default = {} 用于指定某些网址的身份验证信息的可选字典。 |
integrity
|
default = '' 所下载文件的预期校验和,采用子资源完整性格式。此文件必须与所下载文件的校验和匹配。由于远程文件可能会发生变化,因此忽略校验和是一种安全风险。最好忽略此字段,使您的 build 具有非封闭性。为简化开发工作是可选的,但应在配送之前设置。 |
rename_files
|
default = {} 一个可选字典,用于指定提取期间要重命名的文件。归档名称与键完全匹配的归档条目将被重命名为相应值,然后再调整任何目录前缀。这可用于提取包含非 Unicode 文件名的归档文件,或包含会提取文件(不区分大小写的文件系统)上的相同路径的归档文件。 |
execute
exec_result repository_ctx.execute(arguments, timeout=600, environment={}, quiet=True, working_directory="")执行参数列表提供的命令。该命令的执行时间受
timeout
限制(默认为 600 秒)。此方法会返回一个 exec_result
结构,其中包含该命令的输出。environment
映射可用于替换要传递给进程的一些环境变量。
参数
参数 | 说明 |
---|---|
arguments
|
必需 参数列表,第一个元素应该是要执行的程序的路径。 |
timeout
|
default = 600 命令的最长时长(以秒为单位),默认为 600 秒。 |
environment
|
default = {} 强制将一些环境变量设置为传递给进程。 |
quiet
|
default = True 如果 stdout 和 stderr 应输出到终端, |
working_directory
|
default = "" 命令执行的工作目录。 可以相对于代码库根目录或绝对路径。 |
extract
None repository_ctx.extract(archive, output='', stripPrefix='', *, rename_files={})将归档提取到代码库目录。
参数
参数 | 说明 |
---|---|
archive
|
string; or Label; or path ;必需指向归档路径的归档路径(相对于代码库目录)。 |
output
|
string; or Label; or path ;
default = ''指向归档将解压缩到的目录相对于代码库目录的路径。 |
stripPrefix
|
default = '' 用于从提取的文件中移除的目录前缀。 许多归档文件都包含一个顶级目录,其中包含归档文件中的所有文件。通过此字段,无需在 build_file 中反复指定此前缀,即可将其从提取的文件中移除。
|
rename_files
|
default = {} 一个可选字典,用于指定提取期间要重命名的文件。归档名称与键完全匹配的归档条目将被重命名为相应值,然后再调整任何目录前缀。这可用于提取包含非 Unicode 文件名的归档文件,或包含会提取文件(不区分大小写的文件系统)上的相同路径的归档文件。 |
文件
None repository_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。以后的版本将更改默认设置并移除此参数。 |
name
string repository_ctx.name此规则创建的外部代码库的名称。
os
repository_os repository_ctx.os访问系统信息的结构体。
patch
None repository_ctx.patch(patch_file, strip=0)将补丁文件应用到外部代码库的根目录。补丁文件应为标准的统一差异格式文件。Bazel 原生补丁实现不支持模糊匹配和二进制文件补丁(如补丁命令行工具)。
参数
参数 | 说明 |
---|---|
patch_file
|
string; or Label; or path ;必需要应用的补丁文件,它可以是标签、相对路径或绝对路径。如果是相对路径,则它将解析为代码库目录。 |
strip
|
default = 0 从文件名中删除指定数量的前导组件。 |
路径
path repository_ctx.path(path)返回字符串、标签或路径中的路径。如果路径是相对路径,则会根据代码库目录进行解析。如果路径是标签,则会解析为相应文件的路径。请注意,远程仓库在分析阶段执行,因此不能依赖于目标结果(标签应指向非生成的文件)。如果路径是路径,则将按原样返回该路径。
参数
参数 | 说明 |
---|---|
path
|
string; or Label; or path ;必需用于创建字符串的路径、标签或路径 |
阅读
string repository_ctx.read(path)读取文件系统中文件的内容。
参数
参数 | 说明 |
---|---|
path
|
string; or Label; or path ;必需:要读取的文件的路径。 |
报告进度
None repository_ctx.report_progress(status='')更新此代码库或模块扩展的提取进度
参数
参数 | 说明 |
---|---|
status
|
string ;
default = ''字符串,用于说明提取进度的当前状态 |
符号链接
None repository_ctx.symlink(target, link_name)在文件系统上创建符号链接。
参数
参数 | 说明 |
---|---|
target
|
string; or Label; or path ;必需符号链接应指向的路径。 |
link_name
|
string; or Label; or path ;必需要创建的符号链接的路径(相对于代码库目录)。 |
模板
None repository_ctx.template(path, template, substitutions={}, executable=True)使用
template
生成新文件。template
中每个键 substitutions
都将替换为相应的值。结果采用 path
写入。可选的 executable
参数(默认为 true)可以设置为启用或停用可执行位。
参数
参数 | 说明 |
---|---|
path
|
string; or Label; or path ;这是必需文件的路径(相对于代码库目录)。 |
template
|
string; or Label; or path ;这是模板文件的必需路径。 |
substitutions
|
default = {} 替换模板时进行的替换。 |
executable
|
default = True 将在创建的文件上设置可执行标志,默认为 true。 |
哪个
path repository_ctx.which(program)返回相应程序的路径;如果路径中不存在此类程序,则返回 None。
参数
参数 | 说明 |
---|---|
program
|
必需 可在路径中找到的程序。 |
None
。
workspace_root
path repository_ctx.workspace_rootBazel 调用的根工作区的路径。