repository_ctx

ヘルパー関数と属性に関する情報を含むリポジトリ ルールのコンテキスト。リポジトリ ルールを作成すると、implementation 関数の引数として repository_ctx オブジェクトが取得されます。

メンバー

attr

struct repository_ctx.attr

属性の値にアクセスするための構造体。値はユーザーが指定します(指定しない場合はデフォルト値が使用されます)。

delete

bool repository_ctx.delete(path)

ファイルまたはディレクトリを削除します。この呼び出しによってファイルまたはディレクトリが実際に削除されたかどうかを示すブール値を返します。

パラメータ

パラメータ 説明
path string、または path。必須
削除するファイルのパス。リポジトリ ディレクトリからの相対パスまたは絶対パス。パスまたは文字列を指定できます。

ダウンロード

struct repository_ctx.download(url, output='', sha256='', executable=False, allow_fail=False, canonical_id='', auth={}, *, integrity='')

指定された URL のファイルを出力パスにダウンロードし、success を含む構造体を返します。success は、ダウンロードが正常に完了した場合は true になるフラグです。ダウンロードが正常に完了した場合は、sha256 フィールドと integrity フィールドを含むファイルのハッシュも返します。

パラメータ

パラメータ 説明
url 文字列、または 文字列の Iterable。必須
同じファイルを参照するミラー URL のリスト。
output stringLabelpath。デフォルトは ''
です。 リポジトリ ディレクトリを基準とする出力ファイルのパス。
sha256 デフォルトは ''
です。ダウンロードしたファイルの想定される SHA-256 ハッシュ。これは、ダウンロードしたファイルの SHA-256 ハッシュと一致する必要があります。リモート ファイルは変更される可能性があるため、SHA-256 を省略するとセキュリティ リスクが生じます。このフィールドを省略すると、ビルドが非ハーメチックになります。開発を容易にするために省略可能ですが、出荷前に設定する必要があります。
executable デフォルトは False
です。作成されたファイルに実行可能フラグを設定します。デフォルトは false です。
allow_fail デフォルトは False
です。 設定されている場合、ダウンロードの失敗に対してエラーを発生させる代わりに、戻り値でエラーを示します。
canonical_id デフォルトは ''
です。 設定されている場合、キャッシュ ヒットは、同じ正規 ID でファイルがキャッシュに追加されたケースに制限されます。
auth デフォルトは {}
です。 一部の URL の認証情報を指定する省略可能な辞書。
integrity デフォルトは ''
です。 ダウンロードしたファイルの想定されるチェックサム(Subresource Integrity 形式)。これは、ダウンロードしたファイルのチェックサムと一致している必要があります。リモート ファイルは変更される可能性があるため、チェックサムを省略するとセキュリティ リスクが生じます。このフィールドを省略すると、ビルドが非ハーメチックになります。開発を容易にするために省略可能ですが、出荷前に設定する必要があります。

download_and_extract

struct repository_ctx.download_and_extract(url, output='', sha256='', type='', stripPrefix='', allow_fail=False, canonical_id='', auth={}, *, integrity='', rename_files={})

指定された URL のファイルをダウンロードして出力パスに保存し、抽出して、success を含む構造体を返します。success は、ダウンロードが正常に完了した場合は true になるフラグです。ダウンロードが正常に完了した場合は、sha256 フィールドと integrity フィールドを含むファイルのハッシュも返します。

パラメータ

パラメータ 説明
url 文字列、または 文字列の Iterable。必須
同じファイルを参照するミラー URL のリスト。
output stringLabelpath。デフォルトは ''
です。リポジトリ ディレクトリに対する相対パスで、アーカイブが解凍されるディレクトリのパス。
sha256 デフォルトは ''
です。ダウンロードしたファイルの想定される SHA-256 ハッシュ。これは、ダウンロードしたファイルの SHA-256 ハッシュと一致する必要があります。リモート ファイルは変更される可能性があるため、SHA-256 を省略するとセキュリティ リスクが生じます。このフィールドを省略すると、ビルドが非ハーメチックになります。開発を容易にするために省略できますが、出荷前に設定する必要があります。指定された場合、リポジトリ キャッシュで指定されたハッシュを持つファイルが最初にチェックされます。ダウンロードが試行されるのは、ファイルがキャッシュで見つからなかった場合のみです。ダウンロードが完了すると、ファイルがキャッシュに追加されます。
type デフォルトは ''
です。ダウンロードしたファイルのアーカイブ タイプ。デフォルトでは、アーカイブ タイプは URL のファイル拡張子から判断されます。ファイルに拡張子がない場合は、ここで「zip」、「jar」、「war」、「aar」、「tar」、「tar.gz」、「tgz」、「tar.xz」、「txz」、「.tar.zst」、「.tzst」、「tar.bz2」、「.tbz」、「.ar」、「.deb」のいずれかを明示的に指定できます。
stripPrefix デフォルトは ''
です。解凍されたファイルから削除するディレクトリ接頭辞。多くのアーカイブには、アーカイブ内のすべてのファイルを含む最上位のディレクトリが含まれています。build_file でこの接頭辞を何度も指定する必要がある代わりに、このフィールドを使用して抽出されたファイルから接頭辞を削除できます。
allow_fail デフォルトは False
です。 設定されている場合、ダウンロードの失敗に対してエラーを発生させる代わりに、戻り値でエラーを示します。
canonical_id デフォルトは ''
です。 設定されている場合、キャッシュ ヒットは、同じ正規 ID でファイルがキャッシュに追加されたケースに制限されます。
auth デフォルトは {}
です。 一部の URL の認証情報を指定する省略可能な辞書。
integrity デフォルトは ''
です。 ダウンロードしたファイルの想定されるチェックサム(Subresource Integrity 形式)。これは、ダウンロードしたファイルのチェックサムと一致している必要があります。リモート ファイルは変更される可能性があるため、チェックサムを省略するとセキュリティ リスクが生じます。このフィールドを省略すると、ビルドが非ハーメチックになります。開発を容易にするために省略可能ですが、出荷前に設定する必要があります。
rename_files デフォルトは {}
です。 抽出時に名前を変更するファイルを指定するオプションの辞書。キーと完全に一致する名前のエントリは、ディレクトリ プレフィックスの調整前に値に名前変更されます。これは、Unicode 以外のファイル名を含むアーカイブや、大文字と小文字を区別しないファイル システムで同じパスに抽出されるファイルを含むアーカイブを抽出するために使用できます。

execute

exec_result repository_ctx.execute(arguments, timeout=600, environment={}, quiet=True, working_directory="")

引数のリストで指定されたコマンドを実行します。コマンドの実行時間は timeout によって制限されます(秒単位、デフォルトは 600 秒)。このメソッドは、コマンドの出力を格納する exec_result 構造体を返します。environment マップを使用して、プロセスに渡される一部の環境変数をオーバーライドできます。

パラメータ

パラメータ 説明
arguments 必須
引数のリスト。最初の要素は、実行するプログラムのパスにする必要があります。
timeout デフォルトは 600
です。コマンドの最大実行時間(秒単位)。デフォルトは 600 秒です。
environment デフォルトは {}
です。プロセスに渡されるように、いくつかの環境変数を強制的に設定します。
quiet デフォルトは True
です。stdout と stderr をターミナルに出力するかどうか。
working_directory デフォルトは ""
です。コマンド実行の作業ディレクトリ。リポジトリ ルートからの相対パスまたは絶対パスを指定できます。

extract

None repository_ctx.extract(archive, output='', stripPrefix='', *, rename_files={})

アーカイブをリポジトリ ディレクトリに抽出します。

パラメータ

パラメータ 説明
archive stringLabelpath。必須。
解凍されるアーカイブへのパス。リポジトリ ディレクトリからの相対パス。
output stringLabelpath。デフォルトは ''
です。リポジトリ ディレクトリに対する相対パスで、アーカイブが解凍されるディレクトリのパス。
stripPrefix デフォルトは ''
です。解凍されたファイルから削除するディレクトリ接頭辞。多くのアーカイブには、アーカイブ内のすべてのファイルを含む最上位のディレクトリが含まれています。build_file でこの接頭辞を何度も指定する必要がある代わりに、このフィールドを使用して抽出されたファイルから接頭辞を削除できます。
rename_files デフォルトは {}
です。 抽出時に名前を変更するファイルを指定するオプションの辞書。キーと完全に一致する名前のエントリは、ディレクトリ プレフィックスの調整前に値に名前変更されます。これは、Unicode 以外のファイル名を含むアーカイブや、大文字と小文字を区別しないファイル システムで同じパスに抽出されるファイルを含むアーカイブを抽出するために使用できます。

ファイル

None repository_ctx.file(path, content='', executable=True, legacy_utf8=True)

指定された内容でリポジトリ ディレクトリにファイルを作成します。

パラメータ

パラメータ 説明
path 文字列ラベルパス。必須
リポジトリ ディレクトリを基準とする、作成するファイルのパス。
content デフォルトは ''
です。作成するファイルの内容。デフォルトは空です。
executable デフォルトは True
です。作成されたファイルに実行可能フラグを設定します。デフォルトは true です。
legacy_utf8 デフォルトは True
です。ファイル コンテンツを UTF-8 にエンコードします。デフォルトは true です。今後のバージョンでは、デフォルトが変更され、このパラメータは削除されます。

name

string repository_ctx.name

このルールによって作成された外部リポジトリの名前。

os

repository_os repository_ctx.os

システムから情報にアクセスするための構造体。

patch

None repository_ctx.patch(patch_file, strip=0)

パッチファイルを外部リポジトリのルート ディレクトリに適用します。パッチ ファイルは、標準の統合差分形式のファイルである必要があります。Bazel ネイティブのパッチ実装は、パッチ コマンドライン ツールのようなファジー マッチとバイナリ パッチをサポートしていません。

パラメータ

パラメータ 説明
patch_file stringLabelpath。必須
適用するパッチ ファイル。ラベル、相対パス、絶対パスを指定できます。相対パスの場合、リポジトリ ディレクトリに解決されます。
strip デフォルトは 0
です。ファイル名から指定された数の先頭コンポーネントを削除します。

パス

path repository_ctx.path(path)

文字列、ラベル、パスからパスを返します。パスが相対パスの場合、リポジトリ ディレクトリを基準とする相対パスとして解決されます。パスがラベルの場合、対応するファイルのパスに解決されます。リモート リポジトリは分析フェーズで実行されるため、ターゲット結果に依存できません(ラベルは生成されていないファイルを指す必要があります)。path がパスの場合、そのパスをそのまま返します。

パラメータ

パラメータ 説明
path stringLabelpath。必須
パスの作成元となる文字列、ラベル、パス

read

string repository_ctx.read(path)

ファイル システム上のファイルの内容を読み取ります。

パラメータ

パラメータ 説明
path 文字列ラベルパス。必須。
読み取るファイルのパス。

report_progress

None repository_ctx.report_progress(status='')

このリポジトリまたはモジュール拡張機能の取得の進行状況ステータスを更新します。

パラメータ

パラメータ 説明
status string; デフォルトは ''
フェッチの進行状況の現在のステータスを説明する文字列

None repository_ctx.symlink(target, link_name)

ファイル システムにシンボリック リンクを作成します。

パラメータ

パラメータ 説明
target stringLabelpath。必須
シンボリック リンクが指すパス。
stringLabelpath。必須
リポジトリ ディレクトリを基準とする、作成するシンボリック リンクのパス。

テンプレート

None repository_ctx.template(path, template, substitutions={}, executable=True)

template を使用して新しいファイルを生成します。template 内の substitutions のキーのすべての出現箇所が、対応する値に置き換えられます。結果は path に書き込まれます。オプションの executable 引数(デフォルトは true)を設定して、実行可能ビットをオンまたはオフにできます。

パラメータ

パラメータ 説明
path 文字列ラベルパス。必須
リポジトリ ディレクトリを基準とする、作成するファイルのパス。
template stringLabelpath。必須。
テンプレート ファイルのパス。
substitutions デフォルトは {}
です。テンプレートを拡張するときに行う置換。
executable デフォルトは True
です。作成されたファイルに実行可能フラグを設定します。デフォルトは true です。

これは

path repository_ctx.which(program)

対応するプログラムのパスを返します。パスにそのようなプログラムがない場合は None を返します。

パラメータ

パラメータ 説明
program 必須
パス内で検索するプログラム。
None を返すことがあります。

workspace_root

path repository_ctx.workspace_root

bazel 呼び出しのルート ワークスペースへのパス。