implementation
function when you create a repository rule.
Members
- attr
- delete
- download
- download_and_extract
- execute
- extract
- file
- name
- os
- patch
- path
- read
- report_progress
- symlink
- template
- which
- workspace_root
attr
struct repository_ctx.attr
delete
bool repository_ctx.delete(path)
Parameters
Parameter | Description |
---|---|
path
|
string; or path;
required Path of the file to delete, relative to the repository directory, or absolute. Can be a path or a string. |
download
struct repository_ctx.download(url, output='', sha256='', executable=False, allow_fail=False, canonical_id='', auth={}, *, integrity='')
success
, a flag which is true
if the download completed successfully, and if successful, a hash of the file with the fields sha256
and integrity
.
Parameters
Parameter | Description |
---|---|
url
|
string; or Iterable of strings;
required List of mirror URLs referencing the same file. |
output
|
string; or Label; or path;
default is '' path to the output file, relative to the repository directory. |
sha256
|
default is '' the expected SHA-256 hash of the file downloaded. This must match the SHA-256 hash of the file downloaded. It is a security risk to omit the SHA-256 as remote files can change. At best omitting this field will make your build non-hermetic. It is optional to make development easier but should be set before shipping. |
executable
|
default is False set the executable flag on the created file, false by default. |
allow_fail
|
default is False If set, indicate the error in the return value instead of raising an error for failed downloads |
canonical_id
|
default is '' If set, restrict cache hits to those cases where the file was added to the cache with the same canonical id |
auth
|
default is {} An optional dict specifying authentication information for some of the URLs. |
integrity
|
default is '' Expected checksum of the file downloaded, in Subresource Integrity format. This must match the checksum of the file downloaded. It is a security risk to omit the checksum as remote files can change. At best omitting this field will make your build non-hermetic. It is optional to make development easier but should be set before shipping. |
download_and_extract
struct repository_ctx.download_and_extract(url, output='', sha256='', type='', stripPrefix='', allow_fail=False, canonical_id='', auth={}, *, integrity='', rename_files={})
success
, a flag which is true
if the download completed successfully, and if successful, a hash of the file with the fields sha256
and integrity
.
Parameters
Parameter | Description |
---|---|
url
|
string; or Iterable of strings;
required List of mirror URLs referencing the same file. |
output
|
string; or Label; or path;
default is '' path to the directory where the archive will be unpacked, relative to the repository directory. |
sha256
|
default is '' the expected SHA-256 hash of the file downloaded. This must match the SHA-256 hash of the file downloaded. It is a security risk to omit the SHA-256 as remote files can change. At best omitting this field will make your build non-hermetic. It is optional to make development easier but should be set before shipping. If provided, the repository cache will first be checked for a file with the given hash; a download will only be attempted if the file was not found in the cache. After a successful download, the file will be added to the cache. |
type
|
default is '' the archive type of the downloaded file. By default, the archive type is determined from the file extension of the URL. If the file has no extension, you can explicitly specify either "zip", "jar", "war", "aar", "tar", "tar.gz", "tgz", "tar.xz", "txz", ".tar.zst", ".tzst", "tar.bz2", ".tbz", ".ar", or ".deb" here. |
stripPrefix
|
default is '' a directory prefix to strip from the extracted files. Many archives contain a top-level directory that contains all files in the archive. Instead of needing to specify this prefix over and over in the build_file , this field can be used to strip it from extracted files.
|
allow_fail
|
default is False If set, indicate the error in the return value instead of raising an error for failed downloads |
canonical_id
|
default is '' If set, restrict cache hits to those cases where the file was added to the cache with the same canonical id |
auth
|
default is {} An optional dict specifying authentication information for some of the URLs. |
integrity
|
default is '' Expected checksum of the file downloaded, in Subresource Integrity format. This must match the checksum of the file downloaded. It is a security risk to omit the checksum as remote files can change. At best omitting this field will make your build non-hermetic. It is optional to make development easier but should be set before shipping. |
rename_files
|
default is {} An optional dict specifying files to rename during the extraction. Archive entries with names exactly matching a key will be renamed to the value, prior to any directory prefix adjustment. This can be used to extract archives that contain non-Unicode filenames, or which have files that would extract to the same path on case-insensitive filesystems. |
execute
exec_result repository_ctx.execute(arguments, timeout=600, environment={}, quiet=True, working_directory="")
timeout
(in seconds, default 600 seconds). This method returns an exec_result
structure containing the output of the command. The environment
map can be used to override some environment variables to be passed to the process.
Parameters
Parameter | Description |
---|---|
arguments
|
required List of arguments, the first element should be the path to the program to execute. |
timeout
|
default is 600 maximum duration of the command in seconds (default is 600 seconds). |
environment
|
default is {} force some environment variables to be set to be passed to the process. |
quiet
|
default is True If stdout and stderr should be printed to the terminal. |
working_directory
|
default is "" Working directory for command execution. Can be relative to the repository root or absolute. |
extract
None
repository_ctx.extract(archive, output='', stripPrefix='', *, rename_files={})
Parameters
Parameter | Description |
---|---|
archive
|
string; or Label; or path;
required path to the archive that will be unpacked, relative to the repository directory. |
output
|
string; or Label; or path;
default is '' path to the directory where the archive will be unpacked, relative to the repository directory. |
stripPrefix
|
default is '' a directory prefix to strip from the extracted files. Many archives contain a top-level directory that contains all files in the archive. Instead of needing to specify this prefix over and over in the build_file , this field can be used to strip it from extracted files.
|
rename_files
|
default is {} An optional dict specifying files to rename during the extraction. Archive entries with names exactly matching a key will be renamed to the value, prior to any directory prefix adjustment. This can be used to extract archives that contain non-Unicode filenames, or which have files that would extract to the same path on case-insensitive filesystems. |
file
None
repository_ctx.file(path, content='', executable=True, legacy_utf8=True)
Parameters
Parameter | Description |
---|---|
path
|
string; or Label; or path;
required path of the file to create, relative to the repository directory. |
content
|
default is '' the content of the file to create, empty by default. |
executable
|
default is True set the executable flag on the created file, true by default. |
legacy_utf8
|
default is True encode file content to UTF-8, true by default. Future versions will change the default and remove this parameter. |
name
string repository_ctx.name
os
repository_os repository_ctx.os
patch
None
repository_ctx.patch(patch_file, strip=0)
Parameters
Parameter | Description |
---|---|
patch_file
|
string; or Label; or path;
required The patch file to apply, it can be label, relative path or absolute path. If it's a relative path, it will resolve to the repository directory. |
strip
|
default is 0 strip the specified number of leading components from file names. |
path
path repository_ctx.path(path)
Parameters
Parameter | Description |
---|---|
path
|
string; or Label; or path;
required string, label or path from which to create a path from |
read
string repository_ctx.read(path)
Parameters
Parameter | Description |
---|---|
path
|
string; or Label; or path;
required path of the file to read from. |
report_progress
None
repository_ctx.report_progress(status='')
Parameters
Parameter | Description |
---|---|
status
|
string;
default is '' string describing the current status of the fetch progress |
symlink
None
repository_ctx.symlink(target, link_name)
Parameters
Parameter | Description |
---|---|
target
|
string; or Label; or path;
required The path that the symlink should point to. |
link_name
|
string; or Label; or path;
required The path of the symlink to create, relative to the repository directory. |
template
None
repository_ctx.template(path, template, substitutions={}, executable=True)
template
. Every occurrence in template
of a key of substitutions
will be replaced by the corresponding value. The result is written in path
. An optionalexecutable
argument (default to true) can be set to turn on or offthe executable bit.
Parameters
Parameter | Description |
---|---|
path
|
string; or Label; or path;
required path of the file to create, relative to the repository directory. |
template
|
string; or Label; or path;
required path to the template file. |
substitutions
|
default is {} substitutions to make when expanding the template. |
executable
|
default is True set the executable flag on the created file, true by default. |
which
path repository_ctx.which(program)
Parameters
Parameter | Description |
---|---|
program
|
required Program to find in the path. |
None
.
workspace_root
path repository_ctx.workspace_root