Public API

patch

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

NameDescriptionDefault Value
ctxThe repository context of the repository rule calling this utility function.none
patchesThe patch files to apply. List of strings, Labels, or paths.None
patch_cmdsBash commands to run for patching, passed one at a time to bash -c. List of stringsNone
patch_cmds_winPowershell 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_toolPath of the patch tool to execute for applying patches. String.None
patch_argsArguments to pass to the patch tool. List of strings.None
authAn optional dict specifying authentication information for some of the URLs.None
patch_directoryDirectory to apply the patches inNone

repo_utils.get_env_var

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

PARAMETERS

NameDescriptionDefault Value
rctxrctxnone
nameenvironment variable namenone
defaultdefault value to return if env var is not set in systemnone

RETURNS

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

repo_utils.get_home_directory

PARAMETERS

NameDescriptionDefault Value
rctx - none

repo_utils.is_darwin

Returns true if the host operating system is Darwin

PARAMETERS

NameDescriptionDefault Value
rctx - none

repo_utils.is_linux

Returns true if the host operating system is Linux

PARAMETERS

NameDescriptionDefault Value
rctx - none

repo_utils.is_windows

Returns true if the host operating system is Windows

PARAMETERS

NameDescriptionDefault Value
rctx - none

repo_utils.os

Returns the name of the host operating system

PARAMETERS

NameDescriptionDefault Value
rctxrctxnone

RETURNS

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

repo_utils.platform

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

NameDescriptionDefault Value
rctxrctxnone

RETURNS

The normalized “_” string of the host os and CPU architecture.