repository_ctx

問題を報告する ソースを表示

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

メンバー

Attr

struct repository_ctx.attr

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

delete

bool repository_ctx.delete(path)

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

パラメータ

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

ダウンロード

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

指定された URL の出力パスにファイルをダウンロードし、success を含む構造体を返します。これは、ダウンロードが正常に完了した場合は true のフラグであり、成功した場合はフィールド sha256integrity を持つファイルのハッシュを返します。

パラメータ

パラメータ 説明
url string; または string のイテラブル。必須
同じファイルを参照するミラー URL のリスト。
output stringLabelpath のいずれか。デフォルトは ''
出力ファイルへのリポジトリ ディレクトリからの相対パス。
sha256 デフォルトは '' です。
ダウンロードされるファイルの SHA-256 ハッシュです。ダウンロードしたファイルの SHA-256 ハッシュと一致する必要があります。リモート ファイルは変更される可能性があるため、SHA-256 を省略することはセキュリティ上のリスクとなります。このフィールドを省略すると、ビルドが非密閉になります。開発を容易にするために省略することもできますが、配布前に設定する必要があります。
executable デフォルトは False です。
作成されたファイルに実行可能フラグを設定します(デフォルトは false)。
allow_fail デフォルトは False です。
設定すると、ダウンロード失敗時にエラーを発生させる代わりに、戻り値にエラーを示します。
canonical_id デフォルトは '' です。
設定すると、同じ正規 ID でファイルがキャッシュに追加されたケースにキャッシュ ヒットを制限します。
auth デフォルトは {} です。
一部の URL の認証情報を指定するオプションの辞書。
headers デフォルトは {} です。
すべての URL に http ヘッダーを指定するオプションの辞書。
integrity デフォルトは '' です。
ダウンロードされたファイルの予想されるチェックサム(サブリソースの整合性形式)。これは、ダウンロードしたファイルのチェックサムと一致する必要があります。リモート ファイルが変更される可能性があるため、チェックサムを省略することはセキュリティ上のリスクになります。このフィールドを省略すると、ビルドが非密閉になります。開発を容易にするために省略することもできますが、配布前に設定する必要があります。
block デフォルトは True です。
false に設定すると、呼び出しはすぐに返され、通常の戻り値の代わりに、1 つのメソッド 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 を持つファイルのハッシュを返します。

パラメータ

パラメータ 説明
url string; または string のイテラブル。必須
同じファイルを参照するミラー 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"、" .
stripPrefix デフォルトは '' です。
抽出されたファイルから削除するディレクトリ接頭辞。多くのアーカイブには、アーカイブ内のすべてのファイルを含む最上位ディレクトリがあります。抽出されたファイルからこの接頭辞を削除するために、build_file でこの接頭辞を何度も指定する必要はありません。
allow_fail デフォルトは False です。
設定すると、ダウンロード失敗時にエラーを発生させる代わりに、戻り値にエラーを示します。
canonical_id デフォルトは '' です。
設定すると、同じ正規 ID でファイルがキャッシュに追加されたケースにキャッシュ ヒットを制限します。
auth デフォルトは {} です。
一部の URL の認証情報を指定するオプションの辞書。
headers デフォルトは {} です。
すべての URL に http ヘッダーを指定するオプションの辞書。
integrity デフォルトは '' です。
ダウンロードされたファイルの予想されるチェックサム(サブリソースの整合性形式)。これは、ダウンロードしたファイルのチェックサムと一致する必要があります。リモート ファイルが変更される可能性があるため、チェックサムを省略することはセキュリティ上のリスクになります。このフィールドを省略すると、ビルドが非密閉になります。開発を容易にするために省略することもできますが、配布前に設定する必要があります。
rename_files デフォルトは {} です。
抽出中に名前を変更するファイルを指定するオプションの辞書。名前と完全に一致する名前のアーカイブ エントリは、ディレクトリ接頭辞を調整する前に、値に変更されます。これを使用して、Unicode ではないファイル名を含むアーカイブや、大文字と小文字を区別しないファイルシステム上の同じパスに抽出するファイルを含むアーカイブを抽出できます。

execute

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

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

パラメータ

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

extract

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

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

パラメータ

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

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

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

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

パラメータ

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

getenv

string repository_ctx.getenv(name, default=None)

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

増分ビルドを行う場合、name で指定された変数の値が変更されると、このリポジトリが再取得されます。

パラメータ

パラメータ 説明
name 文字列; 必須
目的の環境変数の名前
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 文字列ラベルパス(必須)
適用するパッチファイル。ラベル、相対パス、絶対パスを指定できます。相対パスの場合はリポジトリ ディレクトリに解決されます。
strip デフォルトは 0 です。
指定された数の先頭のコンポーネントをファイル名から削除します。
watch_patch デフォルトは 'auto' です。
パッチファイルを監視するかどうか。文字列「yes」、「no」、「auto」のいずれかを指定できます。「yes」を渡すと、watch() メソッドをすぐに呼び出すのと同じ結果になります。「no」を渡してもファイルの監視は試行されません。「auto」を渡すと、正当な権限がある場合にのみファイルの監視が試行されます(詳しくは watch() のドキュメントをご覧ください)。

パス

path repository_ctx.path(path)

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

パラメータ

パラメータ 説明
path 文字列ラベルパス。 必須
パスの作成元の文字列、ラベル、またはパス

read

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

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

パラメータ

パラメータ 説明
path 文字列ラベルパス。 必須
読み取り元のファイルのパス。
watch デフォルトは 'auto' です。
ファイルを監視するかどうか。文字列「yes」、「no」、「auto」のいずれかを指定できます。「yes」を渡すと、watch() メソッドをすぐに呼び出すのと同じ結果になります。「no」を渡してもファイルの監視は試行されません。「auto」を渡すと、正当な権限がある場合にのみファイルの監視が試行されます(詳しくは watch() のドキュメントをご覧ください)。

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, *, watch_template='auto')

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

パラメータ

パラメータ 説明
path 文字列ラベルパス。 必須
作成するファイルのパス(リポジトリ ディレクトリからの相対パス)。
template 文字列ラベルパス。 必須
テンプレート ファイルへのパス。
substitutions デフォルトは {}
テンプレートの展開時に行われる置換です。
executable デフォルトは True です。
作成されたファイルに実行可能フラグを設定します(デフォルトは true)。
watch_template デフォルトは 'auto' です。
テンプレート ファイルを監視するかどうか。文字列「yes」、「no」、「auto」のいずれかを指定できます。「yes」を渡すと、watch() メソッドをすぐに呼び出すのと同じ結果になります。「no」を渡してもファイルの監視は試行されません。「auto」を渡すと、正当な権限がある場合にのみファイルの監視が試行されます(詳しくは watch() のドキュメントをご覧ください)。

スマートウォッチ

None repository_ctx.watch(path)

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

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

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

パラメータ

パラメータ 説明
path 文字列ラベルパス。 必須
監視するファイルのパス。

watch_tree

None repository_ctx.watch_tree(path)

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

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

パラメータ

パラメータ 説明
path 文字列ラベル、または path。監視するディレクトリ ツリーの
パス(必須)。

これは

path repository_ctx.which(program)

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

パラメータ

パラメータ 説明
program required
パス内で検索するプログラム。
None を返す場合があります。

workspace_root

path repository_ctx.workspace_root

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