Konteks aturan repositori yang berisi fungsi bantuan dan informasi tentang atribut. Anda mendapatkan objek repository_ctx sebagai argumen untuk fungsi implementation
saat membuat aturan repositori.
Anggota
- attr
- hapus
- download
- download_and_extract
- eksekusi
- ekstrak
- file
- getenv
- name
- os
- patch
- path
- baca
- report_progress
- symlink
- template
- jam tangan
- watch_tree
- yang
- workspace_root
attr
struct repository_ctx.attrSebuah struct untuk mengakses nilai-nilai atribut. Nilai diberikan oleh pengguna (jika tidak, nilai default akan digunakan).
hapus
bool repository_ctx.delete(path)Menghapus file atau direktori. Menampilkan bool, yang menunjukkan apakah file atau direktori benar-benar dihapus oleh panggilan ini.
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)Mendownload file ke jalur output untuk URL yang diberikan dan menampilkan struct yang berisi
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. mis. get_default_canonical_id
Parameter
Parameter | Deskripsi |
---|---|
url
|
string; atau Iterable string;
wajib Daftar URL hasil duplikasi yang merujuk pada file yang sama. |
output
|
string; atau Label; atau path;
default-nya adalah '' jalur ke file output, relatif terhadap direktori repositori. |
sha256
|
string;
default adalah '' Hash SHA-256 yang diharapkan dari file yang didownload. Ini harus cocok dengan hash SHA-256 file yang didownload. Menghilangkan SHA-256 karena file jarak jauh dapat berubah merupakan risiko keamanan. 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 diperiksa terlebih dahulu untuk menemukan file dengan hash yang diberikan; download hanya akan dicoba jika file tidak ditemukan dalam cache. Setelah download berhasil, file akan ditambahkan ke cache. |
executable
|
bool;
default adalah False Tetapkan flag yang dapat dieksekusi pada file yang dibuat, ke 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 pada kasus tersebut ketika file ditambahkan ke cache dengan ID kanonis yang sama. Secara default, cache menggunakan checksum ( sha256 atau integrity ).
|
auth
|
dict;
default adalah {} Dikte opsional yang menentukan informasi autentikasi untuk beberapa URL. |
headers
|
dict;
default adalah {} Dikte opsional yang menentukan header http untuk semua URL. |
integrity
|
string;
default adalah '' Checksum yang diharapkan dari file yang didownload, dalam format Integritas Subresource. Ini harus cocok dengan checksum file yang didownload. Menghilangkan checksum karena file jarak jauh dapat berubah merupakan risiko keamanan. 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 diperiksa terlebih dahulu untuk menemukan file dengan checksum yang diberikan; download hanya akan dicoba jika file tidak ditemukan dalam cache. Setelah download berhasil, file akan ditambahkan ke cache. |
block
|
bool;
default adalah True Jika ditetapkan ke false, panggilan akan segera ditampilkan dan, bukan nilai hasil reguler, akan menampilkan token dengan satu metode tunggal, wait(), yang memblokir hingga download selesai dan menampilkan nilai hasil biasa atau menampilkan seperti biasa. |
download_and_extract
struct repository_ctx.download_and_extract(url, output='', sha256='', type='', stripPrefix='', allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', rename_files={})Mendownload file ke jalur output untuk URL yang diberikan, mengekstraknya, dan menampilkan struct yang berisi
success
, flag 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. mis. get_default_canonical_id
Parameter
Parameter | Deskripsi |
---|---|
url
|
string; atau Iterable string;
wajib Daftar URL hasil duplikasi yang merujuk pada file yang sama. |
output
|
string; atau Label; atau path;
default-nya adalah '' Jalur ke direktori tempat arsip akan dibuka, relatif terhadap direktori repositori. |
sha256
|
string;
default adalah '' Hash SHA-256 yang diharapkan dari file yang didownload. Ini harus cocok dengan hash SHA-256 file yang didownload. Menghilangkan SHA-256 karena file jarak jauh dapat berubah merupakan risiko keamanan. 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 diperiksa terlebih dahulu untuk menemukan file dengan hash yang diberikan; download hanya akan dicoba jika file tidak ditemukan dalam 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 secara eksplisit menentukan "zip", "jar", "war", "aar", "tar", "tar.gz", "tgz", "tar.xz", "txz", ".tar.zst", ".tzst", "tar.bz2", ".tbz", ".ar", atau ".deb" di sini. |
stripPrefix
|
string;
default adalah '' Awalan direktori yang akan dihapus dari file yang diekstrak. Banyak arsip berisi direktori tingkat atas 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.
|
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 pada kasus tersebut ketika file ditambahkan ke cache dengan ID kanonis yang sama. Secara {i>default caching<i} menggunakan {i>checksum<i} ( sha256 atau integrity ).
|
auth
|
dict;
default adalah {} Dikte opsional yang menentukan informasi autentikasi untuk beberapa URL. |
headers
|
dict;
default adalah {} Dikte opsional yang menentukan header http untuk semua URL. |
integrity
|
string;
default adalah '' Checksum yang diharapkan dari file yang didownload, dalam format Integritas Subresource. Ini harus cocok dengan checksum file yang didownload. Menghilangkan checksum karena file jarak jauh dapat berubah merupakan risiko keamanan. 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 diperiksa terlebih dahulu untuk menemukan file dengan checksum yang diberikan; download hanya akan dicoba jika file tidak ditemukan dalam cache. Setelah download berhasil, file akan ditambahkan ke cache. |
rename_files
|
dict;
default adalah {} Dik 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="")Menjalankan perintah yang diberikan oleh daftar argumen. Waktu eksekusi perintah dibatasi oleh
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
|
urut;
wajib Daftar argumen, elemen pertama harus berupa jalur ke program yang akan dieksekusi. |
timeout
|
int;
default adalah 600 Durasi maksimum perintah dalam detik (defaultnya adalah 600 detik). |
environment
|
dict;
default adalah {} Memaksa beberapa variabel lingkungan ditetapkan untuk diteruskan ke proses. |
quiet
|
bool;
default 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='', stripPrefix='', *, rename_files={}, watch_archive='auto')
Ekstrak arsip ke direktori repositori.
Parameter
Parameter | Deskripsi |
---|---|
archive
|
string; atau Label; atau path;
wajib jalur ke arsip yang akan dibuka, relatif terhadap direktori repositori. |
output
|
string; atau Label; atau path;
default-nya adalah '' jalur ke direktori tempat arsip akan dibongkar, relatif terhadap direktori repositori. |
stripPrefix
|
string;
default adalah '' awalan direktori yang dihapus dari file yang diekstrak. Banyak arsip berisi direktori tingkat atas 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.
|
rename_files
|
dict;
default adalah {} Dik 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;
default adalah 'auto' apakah ingin menonton file arsip tersebut atau tidak. Dapat berupa string 'yes', 'no', atau 'auto'. Lulus 'ya' setara dengan segera memanggil metode watch() ; memberikan jawaban 'tidak' tidak mencoba untuk melihat file; lewat 'auto' hanya akan mencoba melihat file jika hal tersebut sah untuk dilakukan (lihat dokumen watch() untuk informasi selengkapnya.
|
file
None
repository_ctx.file(path, content='', executable=True, legacy_utf8=True)
Menghasilkan file di direktori repositori dengan konten yang disediakan.
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, secara default kosong. |
executable
|
bool;
default adalah True Menyetel flag yang dapat dieksekusi pada file yang dibuat, true (benar) secara default. |
legacy_utf8
|
bool;
default adalah True Enkode konten file ke UTF-8, true secara default. Versi mendatang akan mengubah default dan menghapus parameter ini. |
Getenv
string repository_ctx.getenv(name, default=None)Menampilkan nilai variabel lingkungan
name
sebagai string jika ada, atau default
jika tidak. Saat mem-build secara bertahap, setiap perubahan pada nilai variabel yang diberi nama oleh name
akan menyebabkan repositori ini diambil ulang.
Parameter
Parameter | Deskripsi |
---|---|
name
|
string;
wajib 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.nameNama repositori eksternal yang dibuat oleh aturan ini.
OS
repository_os repository_ctx.osSebuah struct untuk mengakses informasi dari sistem.
patch
None
repository_ctx.patch(patch_file, strip=0, *, watch_patch='auto')
Terapkan file patch ke direktori root repositori eksternal. File patch harus berupa file format perbedaan terpadu standar. Implementasi {i>patch<i} asli Bazel tidak mendukung pencocokan {i>fuzz<i} dan {i>biner patch<i} seperti alat baris perintah {i>patch<i}.
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 ini adalah jalur relatif, ini akan merujuk ke direktori repositori. |
strip
|
int;
default adalah 0 Menghapus jumlah komponen utama yang ditentukan dari nama file. |
watch_patch
|
string;
default adalah 'auto' Menentukan apakah akan menonton file patch. Dapat berupa string 'yes', 'no', atau 'auto'. Lulus 'ya' setara dengan segera memanggil metode watch() ; memberikan jawaban 'tidak' tidak mencoba untuk melihat file; lewat 'auto' hanya akan mencoba melihat file jika hal tersebut sah untuk dilakukan (lihat dokumen watch() untuk informasi selengkapnya.
|
jalur
path repository_ctx.path(path)Menampilkan jalur dari string, label, atau jalur. Jika jalur bersifat relatif, jalur tersebut akan diselesaikan secara relatif terhadap direktori repositori. Jika jalur adalah label, jalur itu akan menjadi jalur file yang sesuai. Perlu diperhatikan bahwa repositori jarak jauh dijalankan selama fase analisis sehingga tidak dapat bergantung pada hasil target (label harus mengarah ke file yang tidak dihasilkan). Jika jalur adalah jalur, ini akan mengembalikan jalur tersebut sebagaimana adanya.
Parameter
Parameter | Deskripsi |
---|---|
path
|
string; atau Label; atau path;
wajibstring , Label , atau path yang digunakan untuk membuat jalur.
|
baca
string repository_ctx.read(path, *, watch='auto')Membaca isi file pada sistem file.
Parameter
Parameter | Deskripsi |
---|---|
path
|
string; atau Label; atau path;
wajib Jalur file yang akan dibaca. |
watch
|
string;
default adalah 'auto' Apakah akan menonton file atau tidak. Dapat berupa string 'yes', 'no', atau 'auto'. Lulus 'ya' setara dengan segera memanggil metode watch() ; memberikan jawaban 'tidak' tidak mencoba untuk melihat file; lewat 'auto' hanya akan mencoba melihat file jika hal tersebut sah untuk dilakukan (lihat dokumen watch() untuk informasi selengkapnya.
|
report_progress
None
repository_ctx.report_progress(status='')
Memperbarui status progres untuk pengambilan repositori atau ekstensi modul ini.
Parameter
Parameter | Deskripsi |
---|---|
status
|
string;
default adalah '' string yang menjelaskan status progres pengambilan saat ini.
|
symlink
None
repository_ctx.symlink(target, link_name)
Membuat symlink pada sistem file.
Parameter
Parameter | Deskripsi |
---|---|
target
|
string; atau Label; atau path;
wajib Jalur yang harus dituju 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')
Membuat file baru menggunakan template
. Setiap kemunculan di template
dari kunci substitutions
akan diganti dengan nilai yang sesuai. Hasilnya ditulis dalam bahasa path
. Argumen executable
opsional (default ke benar) dapat disetel untuk mengaktifkan atau menonaktifkan bit yang dapat dieksekusi.
Parameter
Parameter | Deskripsi |
---|---|
path
|
string; atau Label; atau path;
wajib Jalur file yang akan dibuat, relatif terhadap direktori repositori. |
template
|
string; atau Label; atau path;
wajib Jalur ke file template. |
substitutions
|
dict;
default adalah {} Substitusi yang akan dibuat saat meluaskan template. |
executable
|
bool;
default adalah True Menyetel flag yang dapat dieksekusi pada file yang dibuat, true (benar) secara default. |
watch_template
|
string;
default adalah 'auto' Apakah akan menonton file template. Dapat berupa string 'yes', 'no', atau 'auto'. Lulus 'ya' setara dengan segera memanggil metode watch() ; memberikan jawaban 'tidak' tidak mencoba untuk melihat file; lewat 'auto' hanya akan mencoba melihat file jika hal tersebut sah untuk dilakukan (lihat dokumen watch() untuk informasi selengkapnya.
|
jam tangan
None
repository_ctx.watch(path)
Memberi tahu Bazel untuk mengawasi perubahan pada jalur yang diberikan, apakah jalur itu ada atau tidak, atau apakah itu file atau direktori. Setiap perubahan pada file atau direktori akan membatalkan repositori atau ekstensi modul ini, dan menyebabkannya diambil ulang atau dievaluasi ulang di lain waktu."Perubahan" menyertakan perubahan pada isi file (jika jalurnya adalah file); jika jalurnya adalah file tetapi sekarang
menjadi direktori, atau sebaliknya; dan apakah jalur dimulai atau
berhenti saat itu. Secara khusus, hal ini tidak mencakup perubahan pada file apa pun pada direktori jika jalurnya adalah direktori. Untuk itu, gunakan path.readdir()
.
Perhatikan bahwa mencoba mengawasi jalur di dalam repo yang sedang diambil, atau di dalam direktori kerja ekstensi modul saat ini, akan mengakibatkan error. Ekstensi modul yang mencoba mengawasi 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)
Memberi tahu Bazel untuk mengawasi perubahan pada file atau direktori apa pun secara transitif pada jalur yang ditentukan. Setiap perubahan pada konten file, keberadaan file atau direktori, nama file atau nama direktori, akan menyebabkan repo ini diambil ulang.Perhatikan bahwa mencoba memantau jalur di dalam repo yang sedang diambil akan mengakibatkan error.
Parameter
Parameter | Deskripsi |
---|---|
path
|
string; atau Label; atau path;
wajib Jalur hierarki direktori yang akan dipantau. |
yang mana
path repository_ctx.which(program)Menampilkan
path
dari program yang sesuai atau None
jika tidak ada program semacam itu di jalur.
Parameter
Parameter | Deskripsi |
---|---|
program
|
string;
wajib Program yang akan ditemukan di jalur. |
None
.
workspace_root
path repository_ctx.workspace_rootJalur ke ruang kerja root panggilan bazel.