Konteks aturan repositori yang berisi fungsi bantuan dan informasi tentang atribut. Anda mendapatkan objek repository_ctx sebagai argumen ke fungsi implementation
saat membuat aturan repositori.
Anggota
- attr
- hapus
- download
- download_and_extract
- eksekusi
- ekstrak
- file
- getenv
- name
- os
- patch
- path
- read
- ganti nama
- report_progress
- symlink
- template
- jam tangan
- watch_tree
- yang
- workspace_root
attr
struct repository_ctx.attr
hapus
bool repository_ctx.delete(path)
Parameter
Parameter | Deskripsi |
---|---|
path
|
string; atau path;
wajib Jalur file yang akan dihapus, relatif terhadap direktori repositori, atau absolut. Dapat berupa jalur atau string. |
download
unknown repository_ctx.download(url, output='', sha256='', executable=False, allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', block=True)
success
, tanda berupa true
jika download berhasil diselesaikan, dan jika berhasil, hash file dengan kolom sha256
dan integrity
. Saat sha256
atau integrity
ditentukan oleh pengguna, sebaiknya tetapkan canonical_id
eksplisit, misalnya get_default_canonical_id
Parameter
Parameter | Deskripsi |
---|---|
url
|
string; atau Iterable string;
wajib Daftar URL duplikat yang merujuk pada file yang sama. |
output
|
string; atau Label; atau path; defaultnya adalah '' jalur ke file output, relatif terhadap direktori repositori. |
sha256
|
string;
defaultnya adalah '' Hash SHA-256 yang diharapkan dari file yang didownload. Hash ini harus cocok dengan hash SHA-256 file yang didownload. Menghapus SHA-256 merupakan risiko keamanan karena file jarak jauh dapat berubah. Sebaiknya menghilangkan kolom ini akan membuat build Anda menjadi non-hermetik. Hal ini bersifat opsional untuk mempermudah pengembangan, tetapi harus ditetapkan sebelum pengiriman. Jika disediakan, cache repositori akan terlebih dahulu diperiksa untuk file dengan hash yang diberikan; download hanya akan dicoba jika file tidak ditemukan di cache. Setelah berhasil didownload, file akan ditambahkan ke cache. |
executable
|
bool;
default adalah False Menetapkan flag yang dapat dieksekusi pada file yang dibuat, false secara default. |
allow_fail
|
bool;
default adalah False Jika ditetapkan, tunjukkan error dalam nilai yang ditampilkan, bukan menampilkan error untuk download yang gagal. |
canonical_id
|
string;
default adalah '' Jika ditetapkan, batasi hit cache ke kasus saat file ditambahkan ke cache dengan ID kanonis yang sama. Secara default, caching menggunakan checksum ( sha256 atau integrity ).
|
auth
|
dict;
defaultnya adalah {} Dikte opsional yang menentukan informasi autentikasi untuk beberapa URL. |
headers
|
dict;
default-nya adalah {} Dikte opsional yang menentukan header http untuk semua URL. |
integrity
|
string;
default adalah '' Checksum yang diharapkan dari file yang didownload, dalam format Subresource Integrity. Ini harus cocok dengan checksum file yang didownload. Menghilangkan checksum karena file jarak jauh dapat berubah merupakan risiko keamanan. Paling tidak, menghapus kolom ini akan membuat build Anda tidak hermetis. Ini bersifat opsional untuk mempermudah pengembangan, tetapi harus ditetapkan sebelum pengiriman. Jika disediakan, cache repositori akan diperiksa terlebih dahulu untuk menemukan file dengan checksum yang diberikan; download hanya akan dicoba jika file tidak ditemukan dalam cache. Setelah berhasil didownload, file akan ditambahkan ke cache. |
block
|
bool;
default adalah True Jika disetel ke salah, panggilan akan segera ditampilkan dan bukan nilai return reguler, panggilan akan menampilkan token dengan satu metode, wait(), yang memblokir hingga download selesai dan menampilkan nilai return biasa atau menampilkan seperti biasa. |
download_and_extract
struct repository_ctx.download_and_extract(url, output='', sha256='', type='', strip_prefix='', allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', rename_files={})
success
, flag yang merupakan true
jika download berhasil diselesaikan, dan jika berhasil, hash file dengan kolom sha256
dan integrity
. Jika sha256
atau integrity
ditentukan pengguna, sebaiknya tetapkan canonical_id
eksplisit. misalnya, get_default_canonical_id
Parameter
Parameter | Deskripsi |
---|---|
url
|
string; atau Iterable dari string;
wajib Daftar URL mirror yang mereferensikan file yang sama. |
output
|
string; atau Label; atau path;
default adalah '' Jalur ke direktori tempat arsip akan diekstrak, relatif terhadap direktori repositori. |
sha256
|
string;
defaultnya adalah '' Hash SHA-256 yang diharapkan dari file yang didownload. Hash ini harus cocok dengan hash SHA-256 file yang didownload. Menghapus SHA-256 merupakan risiko keamanan karena file jarak jauh dapat berubah. Sebaiknya menghilangkan kolom ini akan membuat build Anda menjadi non-hermetik. Ini bersifat opsional untuk mempermudah pengembangan, tetapi harus ditetapkan sebelum pengiriman. Jika disediakan, cache repositori akan terlebih dahulu diperiksa untuk file dengan hash yang diberikan; download hanya akan dicoba jika file tidak ditemukan di cache. Setelah download berhasil, file akan ditambahkan ke cache. |
type
|
string;
default adalah '' Jenis arsip file yang didownload. Secara default, jenis arsip ditentukan dari ekstensi file URL. Jika file tidak memiliki ekstensi, Anda dapat menentukan "zip", "jar", "war", "aar", "nupkg", "tar", "tar.gz", "tgz", "tar.xz", "txz", ".tar.zst", ".tzst", "tar.bz2", ".tbz", ".ar", atau ".deb" secara eksplisit di sini. |
strip_prefix
|
string;
defaultnya adalah '' Awalan direktori yang akan dihapus dari file yang diekstrak. Banyak arsip berisi direktori tingkat teratas yang berisi semua file dalam arsip. Daripada harus menentukan awalan ini berulang kali di build_file , kolom ini dapat
digunakan untuk menghapusnya dari file yang diekstrak.
Untuk kompatibilitas, parameter ini juga dapat digunakan dengan nama
|
allow_fail
|
bool;
default adalah False Jika ditetapkan, tunjukkan error dalam nilai yang ditampilkan, bukan menampilkan error untuk download yang gagal. |
canonical_id
|
string;
default adalah '' Jika ditetapkan, batasi hit cache ke kasus saat file ditambahkan ke cache dengan ID kanonis yang sama. Secara default, caching menggunakan checksum" ( sha256 atau integrity ).
|
auth
|
dict;
default adalah {} Dict opsional yang menentukan informasi autentikasi untuk beberapa URL. |
headers
|
dict;
defaultnya adalah {} Dict opsional yang menentukan header http untuk semua URL. |
integrity
|
string;
default adalah '' Checksum yang diharapkan dari file yang didownload, dalam format Subresource Integrity. Ini harus cocok dengan checksum file yang didownload. Menghapus checksum merupakan risiko keamanan karena file jarak jauh dapat berubah. Paling tidak, menghapus kolom ini akan membuat build Anda tidak hermetis. Ini bersifat opsional untuk mempermudah pengembangan, tetapi harus ditetapkan sebelum pengiriman. Jika disediakan, cache repositori akan diperiksa terlebih dahulu untuk menemukan file dengan checksum yang diberikan; download hanya akan dicoba jika file tidak ditemukan di cache. Setelah berhasil didownload, file akan ditambahkan ke cache. |
rename_files
|
dict;
default adalah {} Dict opsional yang menentukan file yang akan diganti namanya selama ekstraksi. Entri arsip dengan nama yang sama persis dengan kunci akan diganti namanya menjadi nilai sebelum penyesuaian awalan direktori apa pun. Ini dapat digunakan untuk mengekstrak arsip yang berisi nama file non-Unicode, atau yang memiliki file yang akan diekstrak ke jalur yang sama pada sistem file yang tidak peka huruf besar/kecil. |
execute
exec_result repository_ctx.execute(arguments, timeout=600, environment={}, quiet=True, working_directory="")
timeout
(dalam detik, default 600 detik). Metode ini menampilkan struktur exec_result
yang berisi output perintah. Peta environment
dapat digunakan untuk mengganti beberapa variabel lingkungan yang akan diteruskan ke proses.
Parameter
Parameter | Deskripsi |
---|---|
arguments
|
sequence;
required Daftar argumen, elemen pertama harus berupa jalur ke program yang akan dieksekusi. |
timeout
|
int;
default adalah 600 Durasi maksimum perintah dalam detik (default adalah 600 detik). |
environment
|
dict;
default adalah {} Memaksa beberapa variabel lingkungan ditetapkan untuk diteruskan ke proses. Nilainya dapat berupa None untuk menghapus variabel lingkungan.
|
quiet
|
bool;
defaultnya adalah True Jika stdout dan stderr harus dicetak ke terminal. |
working_directory
|
string;
default adalah "" Direktori kerja untuk eksekusi perintah. Dapat relatif terhadap root repositori atau absolut. Defaultnya adalah root repositori. |
ekstrak
None
repository_ctx.extract(archive, output='', strip_prefix='', *, rename_files={}, watch_archive='auto')
Parameter
Parameter | Deskripsi |
---|---|
archive
|
string; atau Label; atau path;
jalur yang diperlukan ke arsip yang akan diekstrak, relatif terhadap direktori repositori. |
output
|
string; atau Label; atau path;
default adalah '' jalur ke direktori tempat arsip akan diekstrak, relatif terhadap direktori repositori. |
strip_prefix
|
string;
defaultnya adalah '' awalan direktori yang akan dihapus dari file yang diekstrak. Banyak arsip berisi direktori tingkat teratas yang berisi semua file dalam arsip. Daripada harus menentukan awalan ini berulang kali di build_file , kolom ini dapat
digunakan untuk menghapusnya dari file yang diekstrak.
Untuk kompatibilitas, parameter ini juga dapat digunakan dengan nama |
rename_files
|
dict;
default-nya adalah {} Dikte opsional yang menentukan file yang akan diganti namanya selama ekstraksi. Entri arsip dengan nama yang sama persis dengan kunci akan diganti namanya menjadi nilai sebelum penyesuaian awalan direktori apa pun. Ini dapat digunakan untuk mengekstrak arsip yang berisi nama file non-Unicode, atau yang memiliki file yang akan diekstrak ke jalur yang sama pada sistem file yang tidak peka huruf besar/kecil. |
watch_archive
|
string;
defaultnya adalah 'auto' apakah akan menonton file arsip atau tidak. Dapat berupa string 'yes', 'no', atau 'auto'. Meneruskan 'yes' sama dengan segera memanggil metode watch() ; meneruskan 'no' tidak akan mencoba mengamati file; meneruskan 'auto' hanya akan mencoba melihat file jika sah untuk melakukannya (lihat dokumen watch() untuk mengetahui informasi selengkapnya.
|
file
None
repository_ctx.file(path, content='', executable=True, legacy_utf8=True)
Parameter
Parameter | Deskripsi |
---|---|
path
|
string; atau Label; atau path;
wajib Jalur file yang akan dibuat, relatif terhadap direktori repositori. |
content
|
string;
default adalah '' Konten file yang akan dibuat, kosong secara default. |
executable
|
bool;
default adalah True Menetapkan flag yang dapat dieksekusi pada file yang dibuat, benar secara default. |
legacy_utf8
|
bool;
defaultnya adalah True Enkode konten file ke UTF-8, benar secara default. Versi mendatang akan mengubah default dan menghapus parameter ini. |
Getenv
string repository_ctx.getenv(name, default=None)
name
sebagai string jika ada, atau default
jika tidak ada. Saat mem-build secara bertahap, setiap perubahan pada nilai variabel yang dinamai oleh name
akan menyebabkan repositori ini diambil ulang.
Parameter
Parameter | Deskripsi |
---|---|
name
|
string;
wajib ada Nama variabel lingkungan yang diinginkan. |
default
|
string; atau None ;
default adalah None Nilai default yang akan ditampilkan jika name tidak ditemukan.
|
None
.
nama
string repository_ctx.name
os
repository_os repository_ctx.os
patch
None
repository_ctx.patch(patch_file, strip=0, *, watch_patch='auto')
Parameter
Parameter | Deskripsi |
---|---|
patch_file
|
string; atau Label; atau path;
wajib File patch yang akan diterapkan, dapat berupa label, jalur relatif, atau jalur absolut. Jika merupakan jalur relatif, jalur tersebut akan di-resolve ke direktori repositori. |
strip
|
int;
default adalah 0 Hapus jumlah komponen awal yang ditentukan dari nama file. |
watch_patch
|
string;
defaultnya adalah 'auto' Apakah akan menonton file patch. Dapat berupa string 'yes', 'no', atau 'auto'. Meneruskan 'yes' sama dengan segera memanggil metode watch() ; meneruskan 'no' tidak akan mencoba mengamati file; meneruskan 'auto' hanya akan mencoba melihat file jika sah untuk melakukannya (lihat dokumen watch() untuk mengetahui informasi selengkapnya.
|
jalur
path repository_ctx.path(path)
Parameter
Parameter | Deskripsi |
---|---|
path
|
string; atau Label; atau path;
wajibstring , Label , atau path yang akan digunakan untuk membuat jalur.
|
baca
string repository_ctx.read(path, *, watch='auto')
Parameter
Parameter | Deskripsi |
---|---|
path
|
string; atau Label; atau path;
wajib Jalur file yang akan dibaca. |
watch
|
string;
default-nya adalah 'auto' Apakah akan memantau file. Dapat berupa string 'yes', 'no', atau 'auto'. Meneruskan 'yes' sama dengan langsung memanggil metode watch() ; meneruskan 'no' tidak akan mencoba menonton file; meneruskan 'auto' hanya akan mencoba menonton file jika diizinkan (lihat dokumen watch() untuk mengetahui informasi selengkapnya.
|
ganti nama
None
repository_ctx.rename(src, dst)
src
menjadi dst
. Direktori induk dibuat sesuai kebutuhan. Gagal jika jalur tujuan
sudah ada. Kedua jalur harus berada dalam repositori.
Parameter
Parameter | Deskripsi |
---|---|
src
|
string; atau Label; atau path;
wajib Jalur file atau direktori yang ada yang akan diganti namanya, sesuai dengan direktori repositori. |
dst
|
string; atau Label; atau path;
wajib Nama baru yang akan menjadi tujuan penggantian nama file atau direktori, sesuai dengan direktori repositori. |
report_progress
None
repository_ctx.report_progress(status='')
Parameter
Parameter | Deskripsi |
---|---|
status
|
string;
default-nya adalah '' string yang menjelaskan status progres pengambilan saat ini.
|
symlink
None
repository_ctx.symlink(target, link_name)
Parameter
Parameter | Deskripsi |
---|---|
target
|
string; atau Label; atau path;
required Jalur yang akan dituju oleh symlink. |
link_name
|
string; atau Label; atau path;
wajib Jalur symlink yang akan dibuat. |
template
None
repository_ctx.template(path, template, substitutions={}, executable=True, *, watch_template='auto')
template
. Setiap kemunculan kunci substitutions
di template
akan diganti dengan nilai yang sesuai. Hasilnya ditulis dalam path
. Argumen executable
opsional (defaultnya true) dapat ditetapkan untuk mengaktifkan atau menonaktifkan bit yang dapat dieksekusi.
Parameter
Parameter | Deskripsi |
---|---|
path
|
string; atau Label; atau path;
wajib Jalur file yang akan dibuat, yang terkait dengan direktori repositori. |
template
|
string; atau Label; atau path;
wajib Jalur ke file template. |
substitutions
|
dict;
defaultnya adalah {} Substitusi yang akan dibuat saat meluaskan template. |
executable
|
bool;
default adalah True Menetapkan flag yang dapat dieksekusi pada file yang dibuat, benar secara default. |
watch_template
|
string;
defaultnya adalah 'auto' Apakah akan menonton file template. Dapat berupa string 'yes', 'no', atau 'auto'. Meneruskan 'yes' sama dengan langsung memanggil metode watch() ; meneruskan 'no' tidak akan mencoba menonton file; meneruskan 'auto' hanya akan mencoba menonton file jika diizinkan (lihat dokumen watch() untuk mengetahui informasi selengkapnya.
|
jam tangan
None
repository_ctx.watch(path)
"Perubahan" mencakup perubahan pada konten file (jika jalurnya adalah file); jika jalurnya adalah file, tetapi sekarang menjadi direktori, atau sebaliknya; dan jika jalur mulai atau berhenti ada. Perlu diperhatikan bahwa hal ini tidak mencakup perubahan pada file apa pun dalam direktori jika jalurnya adalah direktori. Untuk itu, gunakan path.readdir()
.
Perhatikan bahwa mencoba memantau jalur di dalam repo yang sedang diambil, atau di dalam direktori kerja ekstensi modul saat ini, akan menyebabkan error. Ekstensi modul yang mencoba memantau jalur di luar ruang kerja Bazel saat ini juga akan menghasilkan error.
Parameter
Parameter | Deskripsi |
---|---|
path
|
string; atau Label; atau path;
wajib Jalur file yang akan dipantau. |
watch_tree
None
repository_ctx.watch_tree(path)
Perhatikan bahwa mencoba memantau jalur di dalam repo yang saat ini diambil akan menghasilkan error.
Parameter
Parameter | Deskripsi |
---|---|
path
|
string; atau Label; atau path;
wajib Jalur hierarki direktori yang akan dipantau. |
yang mana
path repository_ctx.which(program)
path
program yang sesuai atau None
jika tidak ada program tersebut di jalur.
Parameter
Parameter | Deskripsi |
---|---|
program
|
string;
required Program yang akan ditemukan di jalur. |
None
.
workspace_root
path repository_ctx.workspace_root