ヘルパー関数と属性に関する情報を含むリポジトリ ルールのコンテキスト。リポジトリ ルールを作成すると、implementation
関数の引数として repository_ctx オブジェクトが取得されます。
メンバー
- attr
- delete
- ダウンロード
- download_and_extract
- 実行
- extract
- file
- getenv
- name
- os
- patch
- path
- 読み取り
- report_progress
- symlink
- テンプレート
- watch
- watch_tree
- which
- workspace_root
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)
success
を含む構造体を返します。success
は、ダウンロードが正常に完了した場合は true
になるフラグです。ダウンロードが正常に完了した場合は、sha256
フィールドと integrity
フィールドを含むファイルのハッシュも返します。sha256
または integrity
がユーザー指定の場合、明示的な canonical_id
を設定することを強くおすすめします。例: get_default_canonical_id
パラメータ
パラメータ | 説明 |
---|---|
url
|
string、または string の Iterable。必須 同じファイルを参照するミラー URL のリスト。 |
output
|
string、Label、path。デフォルトは '' です。 リポジトリ ディレクトリを基準とする出力ファイルのパス。 |
sha256
|
デフォルトは '' です。 ダウンロードしたファイルの想定される SHA-256 ハッシュ。これは、ダウンロードしたファイルの SHA-256 ハッシュと一致する必要があります。リモート ファイルは変更される可能性があるため、SHA-256 を省略するとセキュリティ リスクが生じます。このフィールドを省略すると、ビルドが非ハーメチックになります。開発を容易にするために省略できますが、出荷前に設定する必要があります。指定された場合、リポジトリ キャッシュで指定されたハッシュを持つファイルが最初にチェックされます。ダウンロードが試行されるのは、ファイルがキャッシュで見つからなかった場合のみです。ダウンロードが成功すると、ファイルがキャッシュに追加されます。 |
executable
|
デフォルトは False です。 作成されたファイルに実行可能フラグを設定します。デフォルトは false です。 |
allow_fail
|
デフォルトは False です。 設定されている場合、ダウンロードの失敗に対してエラーを発生させる代わりに、戻り値でエラーを示します。 |
canonical_id
|
デフォルトは '' です。 設定すると、ファイルが同じ正規 ID でキャッシュに追加された場合にのみ、キャッシュ ヒットが制限されます。デフォルトでは、キャッシュ保存にはチェックサム( sha256 または integrity )が使用されます。 |
auth
|
デフォルトは {} です。 一部の URL の認証情報を指定する省略可能な辞書。 |
headers
|
デフォルトは {} です。 すべての URL の HTTP ヘッダーを指定するオプションの辞書。 |
integrity
|
デフォルトは '' です。 ダウンロードしたファイルの想定されるチェックサム(Subresource 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={})
success
を含む構造体を返します。success
は、ダウンロードが正常に完了した場合は true
になるフラグです。ダウンロードが正常に完了した場合は、sha256
フィールドと integrity
フィールドを含むファイルのハッシュも返します。sha256
または integrity
がユーザー指定の場合、明示的な canonical_id
を設定することを強くおすすめします。例: get_default_canonical_id
パラメータ
パラメータ | 説明 |
---|---|
url
|
string、または string の Iterable。必須 同じファイルを参照するミラー URL のリスト。 |
output
|
string、Label、path のいずれか。デフォルトは '' です。 アーカイブが解凍されるディレクトリへのパス(リポジトリ ディレクトリからの相対パス)。 |
sha256
|
デフォルトは '' です。 ダウンロードしたファイルの想定される SHA-256 ハッシュ。これは、ダウンロードしたファイルの SHA-256 ハッシュと一致する必要があります。リモート ファイルは変更される可能性があるため、SHA-256 を省略するとセキュリティ リスクが生じます。このフィールドを省略すると、ビルドが非ハーメチックになります。開発を容易にするために省略できますが、出荷前に設定する必要があります。指定された場合、リポジトリ キャッシュで指定されたハッシュを持つファイルが最初にチェックされます。ダウンロードが試行されるのは、ファイルがキャッシュで見つからなかった場合のみです。ダウンロードが成功すると、ファイルがキャッシュに追加されます。 |
type
|
デフォルトは '' です。ダウンロードしたファイルのアーカイブ タイプ。デフォルトでは、アーカイブ タイプは URL のファイル拡張子から判断されます。ファイルに拡張子がない場合は、「zip」、「jar」、「war」、「aar」、「nupkg」、「tar」、「tar.gz」、「tgz」、「tar.xz」、「txz」、「.tar.zst」、「.tzst」、「tar.bz2」、「.tbz」、「.ar」、「.deb」のいずれかを明示的に指定できます。 |
stripPrefix
|
デフォルトは '' です。 解凍されたファイルから削除するディレクトリの接頭辞。多くのアーカイブには、アーカイブ内のすべてのファイルを含む最上位のディレクトリが含まれています。 build_file でこの接頭辞を何度も指定する必要がある代わりに、このフィールドを使用して抽出されたファイルから接頭辞を削除できます。 |
allow_fail
|
デフォルトは False です。 設定されている場合、ダウンロードの失敗に対してエラーを発生させる代わりに、戻り値でエラーを示します。 |
canonical_id
|
デフォルトは '' です。 設定すると、ファイルが同じ正規 ID でキャッシュに追加された場合にのみ、キャッシュ ヒットが制限されます。デフォルトでは、キャッシュ保存はチェックサム( sha256 または integrity )を使用します。 |
auth
|
デフォルトは {} です。 一部の URL の認証情報を指定する省略可能な辞書。 |
headers
|
デフォルトは {} です。 すべての URL の HTTP ヘッダーを指定するオプションの辞書。 |
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={}, watch_archive='auto')
パラメータ
パラメータ | 説明 |
---|---|
archive
|
string、Label、path。必須。 解凍されるアーカイブへのパス。リポジトリ ディレクトリからの相対パス。 |
output
|
string、Label、path。デフォルトは '' です。リポジトリ ディレクトリに対する相対パスで、アーカイブが解凍されるディレクトリのパス。 |
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 にエンコードします。デフォルトは true です。今後のバージョンでは、デフォルトが変更され、このパラメータは削除されます。 |
getenv
string repository_ctx.getenv(name, default=None)
name
の値が存在する場合は文字列として返し、存在しない場合は default
を返します。増分ビルドの場合、name
で指定された変数の値が変更されると、このリポジトリが再取得されます。
パラメータ
パラメータ | 説明 |
---|---|
name
|
string;
必須 目的の環境変数の名前。 |
default
|
文字列、または 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')
パラメータ
パラメータ | 説明 |
---|---|
patch_file
|
string、Label、path。必須 適用するパッチ ファイル。ラベル、相対パス、絶対パスを指定できます。相対パスの場合、リポジトリ ディレクトリに解決されます。 |
strip
|
デフォルトは 0 です。 ファイル名から指定された数の先頭コンポーネントを削除します。 |
watch_patch
|
デフォルトは 'auto' です。 パッチファイルを watch するかどうか。文字列「yes」、「no」、「auto」を指定できます。「yes」を渡すと、 watch() メソッドがすぐに呼び出されます。「no」を渡すと、ファイルの監視は試行されません。「auto」を渡すと、ファイルの監視が許可されている場合にのみ、ファイルの監視が試行されます(詳しくは、watch() のドキュメントをご覧ください)。
|
パス
path repository_ctx.path(path)
パラメータ
パラメータ | 説明 |
---|---|
path
|
string、Label、path。必須。パスの作成元となる string 、Label 、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; デフォルトは '' フェッチの進行状況の現在のステータスを説明する string 。 |
symlink
None
repository_ctx.symlink(target, link_name)
パラメータ
パラメータ | 説明 |
---|---|
target
|
string、Label、path。必須 シンボリック リンクが指すパス。 |
link_name
|
string、Label、path。必須 作成するシンボリック リンクのパス。 |
テンプレート
None
repository_ctx.template(path, template, substitutions={}, executable=True, *, watch_template='auto')
template
を使用して新しいファイルを生成します。template
内の substitutions
のキーのすべての出現箇所が、対応する値に置き換えられます。結果は 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)
「変更」には、ファイルの内容の変更(パスがファイルの場合)、パスがファイルだったがディレクトリになった場合、またはその逆の場合、パスが存在し始めた場合、または存在しなくなった場合が含まれます。特に、パスがディレクトリの場合、ディレクトリ内のファイルの変更は含まれません。代わりに path.readdir()
を使用してください。
現在取得中のリポジトリ内、または現在のモジュール拡張機能の作業ディレクトリ内のパスを監視しようとすると、エラーが発生します。現在の Bazel ワークスペースの外部のパスを監視しようとするモジュール拡張機能もエラーになります。
パラメータ
パラメータ | 説明 |
---|---|
path
|
文字列、ラベル、パス。必須 監視するファイルのパス。 |
watch_tree
None
repository_ctx.watch_tree(path)
現在フェッチ中のリポジトリ内のパスを監視しようとすると、エラーが発生することに注意してください。
パラメータ
パラメータ | 説明 |
---|---|
path
|
string、Label、path。必須 監視するディレクトリ ツリーのパス。 |
これは
path repository_ctx.which(program)
path
を返します。パスにそのようなプログラムがない場合は None
を返します。
パラメータ
パラメータ | 説明 |
---|---|
program
|
必須 パス内で検索するプログラム。 |
None
を返すことがあります。workspace_root
path repository_ctx.workspace_root