ヘルパー関数と、依存関係グラフ全体にわたる関連タグに関する情報が含まれるモジュール拡張のコンテキスト。モジュール拡張機能を作成すると、implementation
関数の引数として module_ctx オブジェクトが返されます。
メンバー
- ダウンロード
- download_and_extract
- 実行
- extension_metadata
- 抽出
- ファイル
- getenv
- is_dev_dependency
- modules
- os
- path
- read
- report_progress
- root_module_has_non_dev_dependency
- watch
ダウンロード
unknown module_ctx.download(url, output='', sha256='', executable=False, allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', block=True)
success
を含む構造体、ダウンロードが正常に完了した場合は true
のフラグ、成功した場合は sha256
フィールドと integrity
フィールドを含むファイルのハッシュを返します。sha256
または integrity
がユーザー指定の場合は、明示的な canonical_id
を設定することを強くおすすめします。例: get_default_canonical_id
パラメータ
パラメータ | 説明 |
---|---|
url
|
文字列、または文字列の iterable。必須 同じファイルを参照するミラー URL のリスト。 |
output
|
文字列、ラベル、パス。デフォルトは '' 。リポジトリ ディレクトリを基準とする出力ファイルのパス。 |
sha256
|
文字列。デフォルトは '' 。ダウンロードしたファイルの想定される SHA-256 ハッシュ。これは、ダウンロードしたファイルの SHA-256 ハッシュと一致する必要があります。リモート ファイルは変更される可能性があるため、SHA-256 を省略するとセキュリティ リスクが生じます。このフィールドを省略すると、ビルドが非ヘルメティックになります。開発を容易にするために設定できますが、出荷前に設定する必要があります。指定されている場合、まずリポジトリ キャッシュで指定されたハッシュのファイルがチェックされます。キャッシュにファイルが見つからない場合のみ、ダウンロードが試行されます。ダウンロードが正常に完了すると、ファイルがキャッシュに追加されます。 |
executable
|
bool;
デフォルトは False 作成されたファイルに実行可能フラグを設定します。デフォルトは false です。 |
allow_fail
|
bool。デフォルトは False 。設定すると、ダウンロードに失敗した場合にエラーをスローするのではなく、戻り値でエラーを通知します。 |
canonical_id
|
文字列。デフォルトは '' 。設定すると、キャッシュ ヒットを、ファイルが同じ正規 ID でキャッシュに追加されたケースに限定します。デフォルトでは、キャッシュにチェックサム( sha256 または integrity )が使用されます。 |
auth
|
dict(デフォルトは {} ): 一部の URL の認証情報を指定するオプションの辞書。 |
headers
|
dict。デフォルトは {} 。すべての URL の HTTP ヘッダーを指定するオプションの辞書。 |
integrity
|
文字列。デフォルトは '' 。ダウンロードされたファイルの想定されるチェックサム(Subresource Integrity 形式)。これは、ダウンロードしたファイルのチェックサムと一致している必要があります。リモート ファイルは変更される可能性があるため、チェックサムを省略するとセキュリティ リスクが生じます。このフィールドを省略すると、ビルドが非ヘルメティックになります。開発を容易にするために設定できますが、出荷前に設定する必要があります。指定されている場合、まずリポジトリ キャッシュで指定されたチェックサムを持つファイルがチェックされます。キャッシュにファイルが見つからない場合にのみ、ダウンロードが試行されます。ダウンロードが正常に完了すると、ファイルがキャッシュに追加されます。 |
block
|
bool。デフォルトは True 。false に設定すると、呼び出しは直ちに返され、通常の戻り値ではなく、1 つのメソッド wait() でトークンが返されます。このトークンは、ダウンロードが完了するまでブロックし、通常の戻り値を返すか、通常どおりスローします。 |
download_and_extract
struct module_ctx.download_and_extract(url, output='', sha256='', type='', strip_prefix='', allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', rename_files={})
success
を含む構造体、ダウンロードが正常に完了した場合は true
のフラグ、正常に完了した場合は sha256
フィールドと integrity
フィールドを含むファイルのハッシュを返します。sha256
または integrity
がユーザー指定の場合は、明示的な canonical_id
を設定することを強くおすすめします。例: get_default_canonical_id
パラメータ
パラメータ | 説明 |
---|---|
url
|
文字列、または文字列の iterable。必須 同じファイルを参照するミラー URL のリスト。 |
output
|
文字列、ラベル、パス。デフォルトは '' 。アーカイブを解凍するディレクトリのパス(リポジトリ ディレクトリからの相対パス)。 |
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」のいずれかを明示的に指定できます。 |
strip_prefix
|
文字列。デフォルトは '' 。抽出されたファイルから削除するディレクトリ接頭辞。多くのアーカイブには、アーカイブ内のすべてのファイルを含む最上位ディレクトリが含まれています。この接頭辞を build_file で何度も指定する代わりに、このフィールドを使用して、抽出されたファイルから削除できます。互換性を確保するため、このパラメータは非推奨の名前 |
allow_fail
|
bool。デフォルトは False 。設定すると、ダウンロードに失敗した場合にエラーをスローするのではなく、戻り値でエラーを通知します。 |
canonical_id
|
文字列。デフォルトは '' 。設定すると、キャッシュ ヒットを、ファイルが同じ正規 ID でキャッシュに追加されたケースに限定します。デフォルトでは、キャッシュにチェックサムを使用します」( sha256 または integrity )。 |
auth
|
dict(デフォルトは {} ): 一部の URL の認証情報を指定するオプションの辞書。 |
headers
|
dict。デフォルトは {} 。すべての URL の HTTP ヘッダーを指定するオプションの辞書。 |
integrity
|
文字列。デフォルトは '' 。ダウンロードされたファイルの想定されるチェックサム(Subresource Integrity 形式)。これは、ダウンロードしたファイルのチェックサムと一致している必要があります。リモート ファイルは変更される可能性があるため、チェックサムを省略するとセキュリティ リスクが生じます。このフィールドを省略すると、ビルドが非ヘルメティックになります。開発を容易にするために設定できますが、出荷前に設定する必要があります。指定されている場合、まずリポジトリ キャッシュで指定されたチェックサムを持つファイルがチェックされます。キャッシュにファイルが見つからない場合にのみ、ダウンロードが試行されます。ダウンロードが正常に完了すると、ファイルはキャッシュに追加されます。 |
rename_files
|
dict(デフォルトは {} ): 抽出時に名前を変更するファイルを指定するオプションの辞書。名前がキーと完全に一致するアーカイブ エントリは、ディレクトリ接頭辞の調整の前に、値に名前が変更されます。これは、Unicode 以外のファイル名を含むアーカイブや、大文字と小文字を区別しないファイル システムで同じパスに抽出されるファイルを抽出する場合に使用できます。 |
execute
exec_result module_ctx.execute(arguments, timeout=600, environment={}, quiet=True, working_directory="")
timeout
によって制限されます(秒単位、デフォルトは 600 秒)。このメソッドは、コマンドの出力を含む exec_result
構造体を返します。environment
マップを使用すると、プロセスに渡される一部の環境変数をオーバーライドできます。
パラメータ
パラメータ | 説明 |
---|---|
arguments
|
sequence;
必須 引数のリスト。最初の要素は、実行するプログラムのパスにする必要があります。 |
timeout
|
int;
デフォルトは 600 コマンドの最大実行時間(秒単位)(デフォルトは 600 秒)。 |
environment
|
dict: デフォルトは {} です。プロセスに渡されるように一部の環境変数を強制的に設定します。値を None にすると、環境変数を削除できます。
|
quiet
|
bool。デフォルトは True 。stdout と stderr をターミナルに出力するかどうか。 |
working_directory
|
文字列。デフォルトは "" 。コマンド実行の作業ディレクトリ。リポジトリのルート相対または絶対にできます。デフォルトはリポジトリのルートです。 |
extension_metadata
extension_metadata module_ctx.extension_metadata(root_module_direct_deps=None, root_module_direct_dev_deps=None, reproducible=False)
パラメータ
パラメータ | 説明 |
---|---|
root_module_direct_deps
|
文字列のシーケンス、または文字列、または None 。デフォルトは None 。拡張機能がルート モジュールの直接依存関係と見なすリポジトリの名前。ルート モジュールが追加のリポジトリをインポートする場合、または use_repo を介してこれらのリポジトリをすべてインポートしない場合、Bazel は拡張機能の評価時に警告を表示し、bazel mod tidy を実行して use_repo 呼び出しを自動的に修正するようユーザーに指示します。
|
root_module_direct_dev_deps
|
文字列のシーケンス、または文字列、または None 。デフォルトは None 。拡張機能がルート モジュールの直接的な開発依存関係と見なすリポジトリの名前。ルート モジュールが追加のリポジトリをインポートする場合、または use_extension(..., dev_dependency = True) で作成された拡張プロキシの use_repo を介してこれらのリポジトリをすべてインポートしない場合、拡張機能が評価されると、Bazel は警告を表示し、bazel mod tidy を実行して use_repo 呼び出しを自動的に修正するようユーザーに指示します。
|
reproducible
|
bool;
デフォルトは False このモジュール拡張により完全な再現性が保証されるため、ロックファイルに保存する必要がないことを示します。 |
extract
None
module_ctx.extract(archive, output='', strip_prefix='', *, rename_files={}, watch_archive='auto')
パラメータ
パラメータ | 説明 |
---|---|
archive
|
文字列、ラベル、パス。必須 展開するアーカイブのパス(リポジトリ ディレクトリからの相対パス)。 |
output
|
文字列、ラベル、パス。デフォルトは '' 。アーカイブを展開するディレクトリのパス(リポジトリ ディレクトリからの相対パス)。 |
strip_prefix
|
文字列。デフォルトは '' 。抽出されたファイルから削除するディレクトリ接頭辞。多くのアーカイブには、アーカイブ内のすべてのファイルを含む最上位ディレクトリが含まれています。この接頭辞を build_file で何度も指定する代わりに、このフィールドを使用して、抽出されたファイルから削除できます。互換性を確保するため、このパラメータは非推奨の名前 |
rename_files
|
dict(デフォルトは {} ): 抽出時に名前を変更するファイルを指定するオプションの辞書。名前がキーと完全に一致するアーカイブ エントリは、ディレクトリ接頭辞の調整の前に、値に名前が変更されます。これは、Unicode 以外のファイル名を含むアーカイブや、大文字と小文字を区別しないファイル システムで同じパスに抽出されるファイルを抽出する場合に使用できます。 |
watch_archive
|
文字列。デフォルトは 'auto' 。アーカイブ ファイルを監視するかどうか。「yes」、「no」、「auto」の文字列を指定できます。「yes」を渡すと、 watch() メソッドがすぐに呼び出されます。「no」を渡すと、ファイルの監視は試行されません。「auto」を渡すと、ファイルの監視は、監視が許可されている場合にのみ試行されます(詳しくは、watch() のドキュメントをご覧ください)。
|
ファイル
None
module_ctx.file(path, content='', executable=True, legacy_utf8=False)
パラメータ
パラメータ | 説明 |
---|---|
path
|
文字列、ラベル、パス。必須 リポジトリ ディレクトリを基準とする、作成するファイルのパス。 |
content
|
文字列。デフォルトは '' 。作成するファイルの内容。デフォルトは空です。 |
executable
|
bool;
デフォルトは True 作成されたファイルに実行可能フラグを設定します。デフォルトは true です。 |
legacy_utf8
|
bool;
デフォルトは False No-op。このパラメータは非推奨で、今後のバージョンの Bazel で削除される予定です。 |
getenv
string module_ctx.getenv(name, default=None)
name
の値を文字列として返します(存在する場合)。存在しない場合は default
を返します。増分ビルドでは、name
という名前の変数の値が変更されると、このリポジトリが再取得されます。
パラメータ
パラメータ | 説明 |
---|---|
name
|
文字列。必須 目的の環境変数の名前。 |
default
|
文字列、または None 。デフォルトは None name が見つからない場合に返されるデフォルト値。 |
None
を返す場合があります。is_dev_dependency
bool module_ctx.is_dev_dependency(tag)
devDependency = True
を使用した use_extension 呼び出しの結果で指定されたかどうかを返します。
パラメータ
パラメータ | 説明 |
---|---|
tag
|
bazel_module_tag;
必須 bazel_module.tags から取得したタグ。 |
modules
list module_ctx.modules
os
repository_os module_ctx.os
パス
path module_ctx.path(path)
パラメータ
パラメータ | 説明 |
---|---|
path
|
文字列、ラベル、パス。必須string 、Label 、path からパスを作成します。 |
read
string module_ctx.read(path, *, watch='auto')
パラメータ
パラメータ | 説明 |
---|---|
path
|
文字列、ラベル、パス。必須 読み取り元のファイルのパス。 |
watch
|
文字列。デフォルトは 'auto' 。ファイルを監視するかどうか。「yes」、「no」、「auto」の文字列を指定できます。「yes」を渡すと、 watch() メソッドがすぐに呼び出されます。「no」を渡すと、ファイルの監視は試行されません。「auto」を渡すと、ファイルの監視は、監視が許可されている場合にのみ試行されます(詳しくは、watch() のドキュメントをご覧ください)。
|
report_progress
None
module_ctx.report_progress(status='')
パラメータ
パラメータ | 説明 |
---|---|
status
|
文字列。デフォルトは '' 。 string は、取得の進行状況の現在のステータスを表します。 |
root_module_has_non_dev_dependency
bool module_ctx.root_module_has_non_dev_dependency
再起動する
None
module_ctx.watch(path)
「変更」には、ファイルの内容の変更(パスがファイルの場合)、パスがファイルからディレクトリに変更された場合やその逆の場合、パスが存在しなくなった場合などが含まれます。なお、パスがディレクトリの場合、ディレクトリ内のファイルの変更は含まれません。そのためには、代わりに path.readdir()
を使用します。
ただし、現在フェッチ中のリポジトリ内、または現在のモジュール拡張機能の作業ディレクトリ内のパスを監視しようとすると、エラーが発生します。現在の Bazel ワークスペース外のパスをモニタリングしようとするモジュール拡張機能でも、エラーが発生します。
パラメータ
パラメータ | 説明 |
---|---|
path
|
文字列、ラベル、パス。必須 監視するファイルのパス。 |
これは
path module_ctx.which(program)
path
を返します。パスにそのようなプログラムがない場合、None
を返します。
パラメータ
パラメータ | 説明 |
---|---|
program
|
文字列。必須 パス内で検索するプログラム。 |
None
を返す場合があります。