repository_ctx

<ph type="x-smartling-placeholder"></ph> 問題を報告する をご覧ください。 ソースを表示 夜間 · 7.3 · 7.2 · 7.1 · 7.0 · 6.5

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

メンバー

attr

struct repository_ctx.attr

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

delete

bool repository_ctx.delete(path)

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

パラメータ

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

ダウンロード

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

指定された URL の出力パスにファイルをダウンロードし、success を含む構造体を返します。ダウンロードが正常に完了した場合はフラグ true、成功した場合は sha256 フィールドと integrity フィールドを含むファイルのハッシュを返します。sha256 または integrity をユーザーが指定する場合は、明示的な canonical_id を設定することを強くおすすめします。例:get_default_canonical_id

パラメータ

パラメータ 説明
url string;文字列の Iterable。 必須
同じファイルを参照するミラー URL のリスト。
output string;またはラベルまたは path デフォルトは '' です
出力ファイルのパス(リポジトリ ディレクトリを基準とする相対パス)。
sha256 string; デフォルトは ''
です ダウンロードしたファイルの想定される SHA-256 ハッシュです。ダウンロードしたファイルの SHA-256 ハッシュと一致している必要があります。リモート ファイルは変更される可能性があるため、SHA-256 を省略するとセキュリティ リスクが発生します。このフィールドを省略すると、ビルドは非密封になります。開発を容易にするためのオプションですが、リリース前に設定する必要があります。指定すると、まずリポジトリのキャッシュで、指定されたハッシュを持つファイルがあるかどうかがチェックされます。ダウンロードは、ファイルがキャッシュに見つからなかった場合にのみ試行されます。ダウンロードが正常に完了すると、ファイルがキャッシュに追加されます。
executable bool; デフォルトは False
です 作成したファイルの実行可能フラグをデフォルトで false に設定します。
allow_fail bool; デフォルトは False
です 設定されている場合は、ダウンロードに失敗した場合にエラーを返すのではなく、戻り値でエラーを示します。
canonical_id string; デフォルトは ''
です 設定すると、キャッシュ ヒットは、同じ正規 ID でファイルがキャッシュに追加された場合にのみ制限されます。デフォルトでは、キャッシュ保存はチェックサム(sha256 または integrity)を使用します。
auth dict; デフォルトは {}
です 一部の URL の認証情報を指定する辞書(省略可)。
headers dict; デフォルトは {}
です すべての URL の http ヘッダーを指定する辞書(省略可)。
integrity string; デフォルトは ''
です ダウンロードされたファイルの想定されるチェックサム(サブリソースの整合性形式)。ダウンロードしたファイルのチェックサムと一致する必要があります。リモート ファイルが変更される可能性があるため、チェックサムを省略することはセキュリティ上のリスクになります。このフィールドを省略すると、ビルドは非密封になります。開発を容易にするためのオプションですが、リリース前に設定する必要があります。指定すると、まずリポジトリのキャッシュで、指定されたチェックサムを持つファイルがあるかどうかがチェックされます。ダウンロードは、ファイルがキャッシュに見つからなかった場合にのみ試行されます。ダウンロードが正常に完了すると、ファイルがキャッシュに追加されます。
block bool; デフォルトは True
です false に設定すると、この呼び出しは即座に返され、通常の戻り値の代わりに、単一のメソッド wait() を含むトークンを返します。メソッドは、ダウンロードが完了するまでブロックし、通常の戻り値を返すか、通常どおりスローします。

download_and_extract

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

指定された URL の出力パスにファイルをダウンロードして抽出し、success を含む構造体を返します。ダウンロードが正常に完了した場合はフラグ true、成功した場合は sha256integrity のフィールドを含むファイルのハッシュを返します。sha256 または integrity をユーザーが指定する場合は、明示的な canonical_id を設定することを強くおすすめします。例:get_default_canonical_id

パラメータ

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

execute

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

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

パラメータ

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

extract

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

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

パラメータ

パラメータ 説明
archive string;またはラベルまたは path 必須
展開するアーカイブへのパス(リポジトリ ディレクトリからの相対パス)。
output string;またはラベルまたは path デフォルトは '' です
アーカイブを展開するディレクトリへのパス(リポジトリ ディレクトリを基準とする相対パス)。
stripPrefix string; デフォルトは ''
です 抽出されたファイルから削除するディレクトリ接頭辞。 多くのアーカイブには、アーカイブ内のすべてのファイルを含む最上位ディレクトリがあります。このフィールドを使用すると、この接頭辞を build_file で何度も指定しなくても、抽出されたファイルから削除できます。
rename_files dict; デフォルトは {}
です 抽出時に名前を変更するファイルを指定する辞書(省略可)。名前がキーと完全に一致するアーカイブ エントリは、ディレクトリ接頭辞が調整される前に、その値に名前が変更されます。これは、Unicode 以外のファイル名を含むアーカイブや、大文字と小文字を区別しないファイルシステム上の同じパスに抽出されるファイルを含むアーカイブの抽出に使用できます。
watch_archive string; デフォルトは 'auto'
です アーカイブ ファイルを監視するかどうかを設定します。文字列「yes」、「no」、「auto」のいずれか。「yes」を渡すこれは、watch() メソッドを即座に呼び出すのと同じです。「no」を渡すファイルの監視を試みません。「auto」を渡すファイルの監視は、法律で許可されている場合にのみ試みます(詳しくは watch() のドキュメントをご覧ください)。

あなた宛てに表示されます。

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

リポジトリ ディレクトリに、提供されたコンテンツを含むファイルを生成します。

パラメータ

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

getenv

string repository_ctx.getenv(name, default=None)

環境変数 name の値が存在する場合は文字列として返します。存在しない場合は default を返します。

段階的にビルドする場合、name で指定された変数の値が変更されると、このリポジトリが再取得されます。

パラメータ

パラメータ 説明
name string; 必須
目的の環境変数の名前。
default string;または None デフォルトは None
です name が見つからない場合に返されるデフォルト値。
None を返すことができます。

name

string repository_ctx.name

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

os

repository_os repository_ctx.os

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

patch

None repository_ctx.patch(patch_file, strip=0, *, watch_patch='auto')

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

パラメータ

パラメータ 説明
patch_file string;またはラベルまたは path 必須
適用するパッチファイル。ラベル、相対パス、絶対パスのいずれかです。相対パスの場合は、リポジトリのディレクトリに解決されます。
strip int; デフォルトは 0
です 指定した数の先頭コンポーネントをファイル名から除去します。
watch_patch string; デフォルトは 'auto'
です パッチファイルを監視するかどうか。文字列「yes」、「no」、「auto」のいずれか。「yes」を渡すこれは、watch() メソッドを即座に呼び出すのと同じです。「no」を渡すファイルの監視を試みません。「auto」を渡すファイルの監視は、法律で許可されている場合にのみ試みます(詳しくは watch() のドキュメントをご覧ください)。

パス

path repository_ctx.path(path)

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

パラメータ

パラメータ 説明
path string;またはラベルまたは path 必須
パスの作成元となる stringLabelpath のいずれか。

read

string repository_ctx.read(path, *, watch='auto')

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

パラメータ

パラメータ 説明
path string;またはラベルまたは path 必須
読み取り元のファイルのパス。
watch string; デフォルトは 'auto'
です ファイルを監視するかどうか。文字列「yes」、「no」、「auto」のいずれか。「yes」を渡すこれは、watch() メソッドを即座に呼び出すのと同じです。「no」を渡すファイルの監視を試みません。「auto」を渡すファイルの監視は、法律で許可されている場合にのみ試みます(詳しくは watch() のドキュメントをご覧ください)。

report_progress

None repository_ctx.report_progress(status='')

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

パラメータ

パラメータ 説明
status string; デフォルトは ''
です 取得の進行状況の現在のステータスを記述する string

None repository_ctx.symlink(target, link_name)

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

パラメータ

パラメータ 説明
target string;またはラベルまたは path 必須
シンボリック リンクが指すパス。
string;またはラベルまたは path 必須
作成するシンボリック リンクのパス。

テンプレート

None repository_ctx.template(path, template, substitutions={}, executable=True, *, watch_template='auto')

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

パラメータ

パラメータ 説明
path string;またはラベルまたは path 必須
作成するファイルのパス(リポジトリ ディレクトリからの相対パス)。
template string;またはラベルまたは path 必須
テンプレート ファイルのパス。
substitutions dict; デフォルトは {}
です テンプレートを展開する際の置換。
executable bool; デフォルトは True
です 作成したファイルの実行可能フラグをデフォルトで true に設定します。
watch_template string; デフォルトは 'auto'
です テンプレート ファイルを監視するかどうか。文字列「yes」、「no」、「auto」のいずれか。「yes」を渡すこれは、watch() メソッドを即座に呼び出すのと同じです。「no」を渡すファイルの監視を試みません。「auto」を渡すファイルの監視は、法律で許可されている場合にのみ試みます(詳しくは watch() のドキュメントをご覧ください)。

再起動する

None repository_ctx.watch(path)

指定したパスの変更の有無、パスがファイルかディレクトリかにかかわらず、変更を監視するよう Bazel に指示します。ファイルまたはディレクトリに変更を加えると、このリポジトリまたはモジュールの拡張が無効になり、次回に再取得または再評価が行われます。

「変更」ファイルの内容の変更を含める(パスがファイルの場合)。パスはファイルだったが、現在はディレクトリになっているか、その逆か。パスが既存の始点か終点かを確認します特に、パスがディレクトリの場合、ディレクトリ下のファイルに対する変更は含まれません。その場合は、代わりに path.readdir() を使用します。

現在取得されているリポジトリ内、または現在のモジュール拡張機能の作業ディレクトリ内のパスを監視しようとすると、エラーになります。モジュール拡張機能が現在の Bazel ワークスペース外のパスを監視しようとした場合も、エラーが発生します。

パラメータ

パラメータ 説明
path string;またはラベルまたは path 必須
監視するファイルのパス。

watch_tree

None repository_ctx.watch_tree(path)

指定されたパスの下にあるファイルやディレクトリに対する推移的な変更を監視するよう Bazel に指示します。ファイルの内容、ファイルやディレクトリの存在、ファイル名、ディレクトリ名が変更されると、このリポジトリが再取得されます。

現在取得されているリポジトリ内のパスを監視しようとすると、エラーが発生します。

パラメータ

パラメータ 説明
path string;またはラベルまたは path 必須
監視するディレクトリ ツリーのパス。

これは

path repository_ctx.which(program)

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

パラメータ

パラメータ 説明
program string; 必須
パスで見つけるプログラム。
None を返すことができます。

workspace_root

path repository_ctx.workspace_root

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