repository_ctx

問題を報告 ソースを表示

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

メンバー

属性

struct repository_ctx.attr

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

delete

bool repository_ctx.delete(path)

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

パラメータ

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

ダウンロード

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

指定された URL の出力パスにファイルをダウンロードし、success という構造体を返します。ダウンロードが正常に完了すると true になり、成功すると sha256integrity のフィールドを持つファイルのハッシュが返されます。

パラメータ

パラメータ 説明
url string; or Iterable of strings(必須)
同じファイルを参照するミラー URL のリスト。
output string; or Label; or path; default = ''
出力ファイルのパス(リポジトリ ディレクトリを基準とする相対パス)。
sha256 default = '
ダウンロードされるファイルの、期待される SHA-256 ハッシュ。これは、ダウンロードされたファイルの SHA-256 ハッシュと一致する必要があります。リモート ファイルは変更される可能性があるため、SHA-256 を省略することはセキュリティ上のリスクとなります。このフィールドを省略すると、ビルドは非密閉になります。開発を容易にすることがオプションですが、リリース前に設定する必要があります。
executable default = False
作成されたファイルで実行可能フラグを設定します。デフォルトでは false です。
allow_fail default = False
設定すると、失敗したダウンロードのエラーではなく、戻り値の誤差が示されます。
canonical_id default = ''
設定した場合、同じ正規 ID のファイルがキャッシュに追加された場合に、ヒットをヒットします。
auth default = {}
一部の URL の認証情報を指定するオプションの辞書。
integrity default = ''
ダウンロードされるファイルのチェックサムが期待されます(サブリソース整合性形式)。これは、ダウンロードしたファイルのチェックサムと一致する必要があります。リモート ファイルは変更される可能性があるため、チェックサムを省略することはセキュリティ上のリスクです。このフィールドを省略すると、ビルドは非密閉になります。開発を容易にすることがオプションですが、リリース前に設定する必要があります。

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 という構造体を返します。ダウンロードが正常に完了すると true となり、成功すると sha256integrity のフィールドを持つファイルのハッシュが返されます。

パラメータ

パラメータ 説明
url string; or Iterable of strings(必須)
同じファイルを参照するミラー URL のリスト。
output string; or Label; or path; default = ''
アーカイブが解凍されるディレクトリのリポジトリ ディレクトリへの相対パス。
sha256 default = '
ダウンロードされるファイルの、期待される SHA-256 ハッシュ。これは、ダウンロードされたファイルの SHA-256 ハッシュと一致する必要があります。リモート ファイルは変更される可能性があるため、SHA-256 を省略することはセキュリティ上のリスクとなります。このフィールドを省略すると、ビルドは非密閉になります。開発を容易にすることがオプションですが、リリース前に設定する必要があります。指定された場合、まずリポジトリ キャッシュは指定されたハッシュを持つファイルがあるかどうかチェックされます。ダウンロードが試行されるのは、ファイルがキャッシュで見つからない場合のみです。ダウンロードが正常に完了すると、ファイルがキャッシュに追加されます。
type default = ''
ダウンロードしたファイルのアーカイブ タイプ。デフォルトでは、アーカイブ タイプは URL のファイル拡張子によって決まります。ファイルに拡張子がない場合、"zip"、"jar"、"war"、"aar"、"tar"、"tar.gz"、"tgz"、"tar.xz"、"txz"、".tar.zst"、".tzst"、"tar.bz2"、".tbz"、".tbz"、".tbz"、".tbz"、".tbz"、".tbz"、".tbz"、と明示的に指定できます。
stripPrefix default = ''
抽出されたファイルから削除するディレクトリ プレフィックス。多くのアーカイブには、アーカイブ内のすべてのファイルを含む最上位ディレクトリが含まれています。このフィールドを使用すると、build_file でこの接頭辞を何度も指定する必要がなくなります。このフィールドは、抽出されたファイルから除去できます。
allow_fail default = False
設定すると、失敗したダウンロードのエラーではなく、戻り値の誤差が示されます。
canonical_id default = ''
設定した場合、同じ正規 ID のファイルがキャッシュに追加された場合に、ヒットをヒットします。
auth default = {}
一部の URL の認証情報を指定するオプションの辞書。
integrity default = ''
ダウンロードされるファイルのチェックサムが期待されます(サブリソース整合性形式)。これは、ダウンロードしたファイルのチェックサムと一致する必要があります。リモート ファイルは変更される可能性があるため、チェックサムを省略することはセキュリティ上のリスクです。このフィールドを省略すると、ビルドは非密閉になります。開発を容易にすることがオプションですが、リリース前に設定する必要があります。
rename_files default = {}
抽出中に名前を変更するファイルを指定するオプションの辞書。アーカイブ エントリとキーが完全に一致する場合、ディレクトリ プレフィックスの調整の前に、値の名前が変更されます。これは、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 default = {}
いくつかの環境変数をプロセスに渡すよう強制します。
quiet default = True
stdout と stderr をターミナルに出力するかどうか
working_directory default = "
コマンド実行用の作業ディレクトリ。 リポジトリのルートからの相対パス、または絶対パスを指定できます。

extract

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

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

パラメータ

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

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

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

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

パラメータ

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

表示されます。

string repository_ctx.name

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

os

repository_os repository_ctx.os

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

patch

None repository_ctx.patch(patch_file, strip=0)

外部リポジトリのルート ディレクトリにパッチファイルを適用します。パッチファイルは標準の Unify diff 形式ファイルにしてください。Bazel ネイティブのパッチ実装は、ファズマッチと、パッチ コマンドライン ツールなどのバイナリパッチをサポートしていません。

パラメータ

パラメータ 説明
patch_file string; or Label; or path(必須)
適用するパッチファイル。ラベル、相対パス、絶対パスのいずれかになります。相対パスの場合は、リポジトリ ディレクトリに解決されます。
strip default = 0
ファイル名から指定した数のトップ コンポーネントを削除します。

パス

path repository_ctx.path(path)

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

パラメータ

パラメータ 説明
path string; or Label; or path(必須)
パスの作成元となる文字列、ラベル、パス

読み取り

string repository_ctx.read(path)

ファイル システム上のファイルのコンテンツを読み取ります。

パラメータ

パラメータ 説明
path string; or Label; or path: 読み取り元となるファイルの
パス。必須。

レポートの進行状況

None repository_ctx.report_progress(status='')

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

パラメータ

パラメータ 説明
status string; default = ''
取得の進行状況の現在の状態を示す文字列

None repository_ctx.symlink(target, link_name)

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

パラメータ

パラメータ 説明
target string; or Label; or path(必須)
シンボリック リンクが指すパス。
string; or Label; or path(必須)
作成するシンボリック リンクのパス(リポジトリ ディレクトリを基準とする相対パス)。

テンプレート

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

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

パラメータ

パラメータ 説明
path string; or Label; or path(必須): リポジトリ ディレクトリを基準とする、相対パスで作成するファイルのパス。
template string; or Label; or path; テンプレート ファイルへの
必須パス。
substitutions default = {}
テンプレートを開くときに使用する置換。
executable default = True
作成されたファイルで実行可能フラグを設定します(デフォルトは true)。

どの

path repository_ctx.which(program)

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

パラメータ

パラメータ 説明
program 必須
パスで見つけるためのプログラム。
None を返すことがあります。

#workspace_root

path repository_ctx.workspace_root

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