bazel-lib/docs/repo_utils.md

5.6 KiB

Public API

patch

patch(ctx, patches, patch_cmds, patch_cmds_win, patch_tool, patch_args, auth, patch_directory)

Implementation of patching an already extracted repository.

This rule is intended to be used in the implementation function of a repository rule. If the parameters patches, patch_tool, patch_args, patch_cmds and patch_cmds_win are not specified then they are taken from ctx.attr.

PARAMETERS

Name Description Default Value
ctx The repository context of the repository rule calling this utility function. none
patches The patch files to apply. List of strings, Labels, or paths. None
patch_cmds Bash commands to run for patching, passed one at a time to bash -c. List of strings None
patch_cmds_win Powershell commands to run for patching, passed one at a time to powershell /c. List of strings. If the boolean value of this parameter is false, patch_cmds will be used and this parameter will be ignored. None
patch_tool Path of the patch tool to execute for applying patches. String. None
patch_args Arguments to pass to the patch tool. List of strings. None
auth An optional dict specifying authentication information for some of the URLs. None
patch_directory Directory to apply the patches in None

repo_utils.is_darwin

repo_utils.is_darwin(rctx)

Returns true if the host operating system is Darwin

PARAMETERS

Name Description Default Value
rctx

-

none

repo_utils.is_linux

repo_utils.is_linux(rctx)

Returns true if the host operating system is Linux

PARAMETERS

Name Description Default Value
rctx

-

none

repo_utils.is_windows

repo_utils.is_windows(rctx)

Returns true if the host operating system is Windows

PARAMETERS

Name Description Default Value
rctx

-

none

repo_utils.get_env_var

repo_utils.get_env_var(rctx, name, default)

Find an environment variable in system. Doesn't %-escape the value!

PARAMETERS

Name Description Default Value
rctx rctx none
name environment variable name none
default default value to return if env var is not set in system none

RETURNS

The environment variable value or the default if it is not set

repo_utils.get_home_directory

repo_utils.get_home_directory(rctx)

PARAMETERS

Name Description Default Value
rctx

-

none

repo_utils.os

repo_utils.os(rctx)

Returns the name of the host operating system

PARAMETERS

Name Description Default Value
rctx rctx none

RETURNS

The string "windows", "linux", "freebsd" or "darwin" that describes the host os

repo_utils.platform

repo_utils.platform(rctx)

Returns a normalized name of the host os and CPU architecture.

Alias archictures names are normalized:

x86_64 => amd64 aarch64 => arm64

The result can be used to generate repository names for host toolchain repositories for toolchains that use these normalized names.

Common os & architecture pairs that are returned are,

  • darwin_amd64
  • darwin_arm64
  • linux_amd64
  • linux_arm64
  • linux_s390x
  • linux_ppc64le
  • windows_amd64

PARAMETERS

Name Description Default Value
rctx rctx none

RETURNS

The normalized "<os>_<arch>" string of the host os and CPU architecture.