lewati_repositori

Laporkan masalah Lihat sumber Nightly · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

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

struct repository_ctx.attr

Struktur untuk mengakses 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, 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={})

Mendownload file ke jalur output untuk URL yang diberikan, mengekstraknya, dan menampilkan struct yang berisi 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 stripPrefix yang tidak digunakan lagi.

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="")

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 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')

Ekstrak arsip ke direktori repositori.

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 stripPrefix yang tidak digunakan lagi.

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)

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, 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)

Menampilkan nilai variabel lingkungan 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.
Mungkin menampilkan None.

nama

string repository_ctx.name

Nama repositori eksternal yang dibuat oleh aturan ini.

os

repository_os repository_ctx.os

Struktur 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 diff terpadu standar. Implementasi patch native Bazel tidak mendukung pencocokan fuzz dan patch biner seperti alat command line patch.

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)

Menampilkan jalur dari string, label, atau jalur. Jika jalur bersifat relatif, jalur tersebut akan di-resolve secara relatif terhadap direktori repositori. Jika merupakan label, jalur akan di-resolve ke jalur file yang sesuai. Perhatikan bahwa repositori jarak jauh dieksekusi selama fase analisis sehingga tidak dapat bergantung pada hasil target (label harus mengarah ke file yang tidak dibuat). Jika path adalah jalur, jalur tersebut akan ditampilkan apa adanya.

Parameter

Parameter Deskripsi
path string; atau Label; atau path; wajib
string, Label, atau path yang akan digunakan untuk membuat jalur.

baca

string repository_ctx.read(path, *, watch='auto')

Membaca konten file di sistem file.

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)

Mengganti nama file atau direktori dari 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='')

Memperbarui status progres untuk pengambilan repositori atau ekstensi modul ini.

Parameter

Parameter Deskripsi
status string; default-nya adalah ''
string yang menjelaskan status progres pengambilan saat ini.

None repository_ctx.symlink(target, link_name)

Membuat symlink di sistem file.

Parameter

Parameter Deskripsi
target string; atau Label; atau path; required
Jalur yang akan dituju oleh symlink.
string; atau Label; atau path; wajib
Jalur symlink yang akan dibuat.

template

None repository_ctx.template(path, template, substitutions={}, executable=True, *, watch_template='auto')

Menghasilkan file baru menggunakan 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)

Memberi tahu Bazel untuk memantau perubahan pada jalur yang diberikan, baik jalur tersebut ada maupun tidak, atau apakah jalur tersebut berupa file atau direktori. Setiap perubahan pada file atau direktori akan membuat ekstensi modul atau repositori ini tidak valid, dan menyebabkannya diambil ulang atau dievaluasi ulang pada lain waktu.

"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)

Memberi tahu Bazel untuk mengawasi perubahan pada file atau direktori apa pun secara transitif pada jalur yang ditentukan. Setiap perubahan pada isi 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 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)

Menampilkan 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.
Mungkin menampilkan None.

workspace_root

path repository_ctx.workspace_root

Jalur ke ruang kerja root panggilan bazel.