menggunakan aturan repositori

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

Fungsi berikut dapat dimuat dari @bazel_tools//tools/build_defs/repo:utils.bzl.

Utilitas untuk memanipulasi repositori eksternal, setelah diambil.

Penyiapan

Utilitas ini dimaksudkan untuk digunakan oleh aturan repositori lain. File tersebut dapat dimuat sebagai berikut.

load(
    "@bazel_tools//tools/build_defs/repo:utils.bzl",
    "workspace_and_buildfile",
    "patch",
    "update_attrs",
)

download_remote_files

download_remote_files(ctx, auth)

Fungsi utilitas untuk mendownload file jarak jauh.

Aturan ini dimaksudkan untuk digunakan dalam fungsi penerapan aturan repositori. Ini mengasumsikan parameter remote_file_urls dan remote_file_integrity ada di ctx.attr.

Parameter

ctx tidak diperlukan.

Konteks repositori dari aturan repositori yang memanggil fungsi utilitas ini.

auth opsional. default-nya adalah None

Dict opsional yang menentukan informasi autentikasi untuk beberapa URL.

get_auth

get_auth(ctx, urls)

Fungsi utilitas untuk mendapatkan dict autentikasi yang benar untuk daftar URL dari file .netrc.

Mendukung atribut netrc dan auth_patterns opsional jika tersedia.

Parameter

ctx tidak diperlukan.

Konteks repositori dari aturan repositori yang memanggil fungsi utilitas ini.

urls tidak diperlukan.

daftar URL yang akan dibaca

Hasil

kamus autentikasi yang dapat diteruskan ke repository_ctx.download

mungkin

maybe(repo_rule, name, kwargs)

Fungsi utilitas untuk hanya menambahkan repositori jika belum ada.

Hal ini untuk menerapkan makro repositories.bzl aman yang didokumentasikan di https://bazel.build/rules/deploying#dependencies.

Parameter

repo_rule tidak diperlukan.

fungsi aturan repositori.

name tidak diperlukan.

nama repositori yang akan dibuat.

kwargs opsional.

argumen yang tersisa yang diteruskan ke fungsi repo_rule.

Hasil

Tidak ada, menentukan repositori saat diperlukan sebagai efek samping.

parse_netrc

parse_netrc(contents, filename)

Fungsi utilitas untuk mengurai setidaknya file .netrc dasar.

Parameter

contents tidak diperlukan.

input untuk parser.

filename opsional. default-nya adalah None

nama file yang akan digunakan dalam pesan error, jika ada.

Hasil

dict yang memetakan nama mesin ke dict dengan informasi yang diberikan tentang nama tersebut

patch

patch(ctx, patches, patch_cmds, patch_cmds_win, patch_tool, patch_args, auth)

Implementasi patch pada repositori yang telah diekstrak.

Aturan ini dimaksudkan untuk digunakan dalam fungsi penerapan aturan repositori. Jika parameter patches, patch_tool, patch_args, patch_cmds, dan patch_cmds_win tidak ditentukan, parameter tersebut akan diambil dari ctx.attr.

Parameter

ctx tidak diperlukan.

Konteks repositori dari aturan repositori yang memanggil fungsi utilitas ini.

patches opsional. default-nya adalah None

File patch yang akan diterapkan. Daftar string, Label, atau jalur.

patch_cmds opsional. default-nya adalah None

Perintah bash yang akan dijalankan untuk melakukan patching, diteruskan satu per satu ke bash -c. Daftar string

patch_cmds_win opsional. default-nya adalah None

Perintah PowerShell yang akan dijalankan untuk melakukan patching, diteruskan satu per satu ke powershell /c. Daftar string. Jika nilai boolean parameter ini salah, patch_cmds akan digunakan dan parameter ini akan diabaikan.

patch_tool opsional. default-nya adalah None

Jalur alat patch yang akan dijalankan untuk menerapkan patch. String.

patch_args opsional. default-nya adalah None

Argumen yang akan diteruskan ke alat patch. Daftar string.

auth opsional. default-nya adalah None

Dict opsional yang menentukan informasi autentikasi untuk beberapa URL.

read_netrc

read_netrc(ctx, filename)

Fungsi utilitas untuk mengurai setidaknya file .netrc dasar.

Parameter

ctx tidak diperlukan.

Konteks repositori dari aturan repositori yang memanggil fungsi utilitas ini.

filename tidak diperlukan.

nama file .netrc yang akan dibaca

Hasil

dict yang memetakan nama mesin ke dict dengan informasi yang diberikan tentang nama tersebut

read_user_netrc

read_user_netrc(ctx)

Membaca file netrc default pengguna.

Parameter

ctx tidak diperlukan.

Konteks repositori dari aturan repositori yang memanggil fungsi utilitas ini.

Hasil

dict yang memetakan nama mesin ke dict dengan informasi yang diberikan tentang nama tersebut.

update_attrs

update_attrs(orig, keys, override)

Fungsi utilitas untuk mengubah dan menambahkan atribut yang ditentukan ke pemanggilan aturan repositori tertentu.

Ini digunakan untuk membuat aturan dapat direproduksi.

Parameter

orig tidak diperlukan.

dict dari atribut yang benar-benar ditetapkan (baik secara eksplisit maupun implisit) oleh pemanggilan aturan tertentu

keys tidak diperlukan.

kumpulan lengkap atribut yang ditentukan pada aturan ini

override tidak diperlukan.

dict atribut untuk mengganti atau menambahkan ke orig

Hasil

dict atribut dengan kunci dari penggantian yang disisipkan/diperbarui

use_netrc

use_netrc(netrc, urls, patterns)

Menghitung kamus autentikasi dari file netrc yang diuraikan dan daftar URL.

Parameter

netrc tidak diperlukan.

file netrc yang telah diuraikan ke dalam kamus, misalnya, seperti yang diperoleh dari read_netrc

urls tidak diperlukan.

daftar URL.

patterns tidak diperlukan.

kamus opsional dari URL ke pola otorisasi

Hasil

dict yang cocok sebagai argumen autentikasi untuk ctx.download; lebih tepatnya, dict akan memetakan semua URL tempat file netrc menyediakan login dan sandi ke dict yang berisi login, sandi, dan pola otorisasi opsional yang sesuai, serta pemetaan "type" ke "basic" atau "pattern".

workspace_and_buildfile

workspace_and_buildfile(ctx)

Fungsi utilitas untuk menulis WORKSPACE dan, jika diminta, file BUILD.

Aturan ini dimaksudkan untuk digunakan dalam fungsi penerapan aturan repositori. Fungsi ini mengasumsikan parameter name, build_file, build_file_content, workspace_file, dan workspace_file_content ada di ctx.attr; empat parameter terakhir mungkin dengan nilai None.

Parameter

ctx tidak diperlukan.

Konteks repositori dari aturan repositori yang memanggil fungsi utilitas ini.