次の関数は @bazel_tools//tools/build_defs/repo:utils.bzl
から読み込めます。
取得した外部リポジトリを操作するためのユーティリティ。
セットアップ
これらのユーティリティは、他のリポジトリ ルールで使用することを想定しています。次のように読み込むことができます。
load(
"@bazel_tools//tools/build_defs/repo:utils.bzl",
"workspace_and_buildfile",
"patch",
"update_attrs",
)
get_auth
get_auth(ctx, urls)
.netrc ファイルから URL のリストに適した認証辞書を取得するユーティリティ関数。
オプションの netrc 属性と auth_patterns 属性をサポート(利用可能な場合)。
パラメータ
ctx |
必須です。
このユーティリティ関数を呼び出すリポジトリ ルールのリポジトリ コンテキスト。 |
urls |
必須です。 読み取る URL のリスト |
戻り値
repository_ctx.download に渡すことができる認証ディクショナリ
どちらでもない
maybe(repo_rule, name, kwargs)
リポジトリがまだ存在しない場合にのみ追加するユーティリティ関数。
これは、https://bazel.build/rules/deploying#defense に記載されている安全な repositories.bzl マクロを実装するためのものです。
パラメータ
repo_rule |
必須です。 リポジトリ ルール関数。 |
name |
必須です。 作成するリポジトリの名前。 |
kwargs |
省略可。 repo_rule 関数に渡される残りの引数。 |
戻り値
何もせず、副作用として必要に応じてリポジトリを定義します。
parse_netrc
parse_netrc(contents, filename)
少なくとも基本的な.netrc ファイルを解析するユーティリティ関数。
パラメータ
contents |
必須です。 パーサーの入力。 |
filename |
省略可。デフォルトは None です。エラー メッセージで使用するファイル名(存在する場合)。 |
戻り値
マシン名を、それらに関する情報を含む辞書にマッピングする辞書
patch
patch(ctx, patches, patch_cmds, patch_cmds_win, patch_tool, patch_args, auth)
すでに抽出されたリポジトリへのパッチ適用の実装。
このルールは、リポジトリ ルールの実装関数で使用することを目的としています。パラメータ patches
、patch_tool
、patch_args
、patch_cmds
、patch_cmds_win
が指定されていない場合、これらのパラメータは ctx.attr
から取得されます。
パラメータ
ctx |
必須です。
このユーティリティ関数を呼び出すリポジトリ ルールのリポジトリ コンテキスト。 |
patches |
省略可。デフォルトは None です。適用するパッチファイル。文字列、ラベル、パスのリスト。 |
patch_cmds |
省略可。デフォルトは None です。パッチ適用のために実行する bash コマンド。1 つずつ bash -c に渡されます。文字列のリスト |
patch_cmds_win |
省略可。デフォルトは None です。パッチ適用のために実行する Powershell コマンドが powershell /c に 1 つずつ渡されています文字列のリスト。このパラメータのブール値が false の場合、patch_cmds が使用され、このパラメータは無視されます。 |
patch_tool |
省略可。デフォルトは None です。パッチを適用するために実行するパッチツールのパス。文字列。 |
patch_args |
省略可。デフォルトは None です。パッチツールに渡す引数。文字列のリスト。 |
auth |
省略可。デフォルトは None です。一部の URL の認証情報を指定する辞書(省略可)。 |
read_netrc
read_netrc(ctx, filename)
少なくとも基本的な .netrc ファイルを解析するユーティリティ関数。
パラメータ
ctx |
必須です。
このユーティリティ関数を呼び出すリポジトリ ルールのリポジトリ コンテキスト。 |
filename |
必須です。 読み込む .netrc ファイルの名前 |
戻り値
マシン名を、それらに関する情報を含む辞書にマッピングする辞書
read_user_netrc
read_user_netrc(ctx)
ユーザーのデフォルトの netrc ファイルを読み取る。
パラメータ
ctx |
必須です。 このユーティリティ関数を呼び出すリポジトリ ルールのリポジトリ コンテキスト。 |
戻り値
指定した情報を含む辞書にマシン名をマッピングする辞書。
update_attrs
update_attrs(orig, keys, override)
指定された属性を変更して特定のリポジトリ ルールの呼び出しに追加するためのユーティリティ関数。
これはルールを再現可能にするために使用されます。
パラメータ
orig |
必須です。 特定のルール呼び出しで(明示的または暗黙的に)属性を実際に設定するための辞書 |
keys |
必須です。 このルールで定義されているすべての属性のセット |
override |
必須です。
元の属性をオーバーライドまたは追加する属性の辞書 |
戻り値
オーバーライドから挿入または更新されたキーを含む属性の辞書
use_netrc
use_netrc(netrc, urls, patterns)
解析された netrc ファイルと URL のリストから認証辞書を計算します。
パラメータ
netrc |
必須です。 すでに辞書に解析されている netrc ファイル(例: read_netrc から取得) |
urls |
必須です。 URL のリスト。 |
patterns |
必須です。 (省略可)承認パターンへの URL の辞書 |
戻り値
ctx.download の auth 引数として適した辞書。より正確には、この辞書は、netrc ファイルがログインとパスワードを提供するすべての URL を、対応するログイン、パスワード、オプションの認可パターンを含む辞書にマッピングします。また、「type」を「basic」または「pattern」にマッピングします。
workspace_and_buildfile
workspace_and_buildfile(ctx)
WORKSPACE と、リクエストに応じて BUILD ファイルを書き込むユーティリティ関数。
このルールは、リポジトリ ルールの実装関数で使用することを目的としています。パラメータ name
、build_file
、build_file_content
、workspace_file
、workspace_file_content
が ctx.attr
に存在することを前提としています。後者の 4 つは値が None の場合もあります。
パラメータ
ctx |
必須です。
このユーティリティ関数を呼び出すリポジトリ ルールのリポジトリ コンテキスト。 |