maybe

maybe(repo_rule, name, kwargs)

Utility function for only adding a repository if it’s not already present.

This is to implement safe repositories.bzl macro documented in https://docs.bazel.build/versions/master/skylark/deploying.html#dependencies.

Parameters

repo_rule required.

repository rule function.

name required.

name of the repository to create.

kwargs optional.

remaining arguments that are passed to the repo_rule function.

patch

patch(ctx)

Implementation of patching an already extracted repository.

This rule is inteded to be used in the implementation function of a repository rule. It assuumes that the parameters patches, patchtool, patch_args, and patch_cmds are present in ctx.attr.

Parameters

ctx required.

The repository context of the repository rule calling this utility function.

read_netrc

read_netrc(ctx, filename)

Utility function to parse at least a basic .netrc file.

Parameters

ctx required.

The repository context of the repository rule calling this utility function.

filename required.

the name of the .netrc file to read

update_attrs

update_attrs(orig, keys, override)

Utility function for altering and adding the specified attributes to a particular repository rule invocation.

This is used to make a rule reproducible.

Parameters

orig required.

dict of actually set attributes (either explicitly or implicitly) by a particular rule invocation

keys required.

complete set of attributes defined on this rule

override required.

dict of attributes to override or add to orig

use_netrc

use_netrc(netrc, urls)

compute an auth dict from a parsed netrc file and a list of URLs

Parameters

netrc required.

a netrc file already parsed to a dict, e.g., as obtained from read_netrc

urls required.

a list of URLs.

workspace_and_buildfile

workspace_and_buildfile(ctx)

Utility function for writing WORKSPACE and, if requested, a BUILD file.

This rule is inteded to be used in the implementation function of a repository rule. It assumes the parameters name, build_file, build_file_contents, workspace_file, and workspace_file_content to be present in ctx.attr, the latter four possibly with value None.

Parameters

ctx required.

The repository context of the repository rule calling this utility function.