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 lainnya. Mereka dapat dimuat sebagai berikut.
load(
"@bazel_tools//tools/build_defs/repo:utils.bzl",
"workspace_and_buildfile",
"patch",
"update_attrs",
)
download_remote_files
load("@bazel//tools/build_defs/repo:utils.bzl", "download_remote_files") download_remote_files(ctx, auth)
Fungsi utilitas untuk mendownload file jarak jauh.
Aturan ini dimaksudkan untuk digunakan dalam fungsi implementasi
aturan repositori. Tutorial ini mengasumsikan parameter remote_file_urls
dan
remote_file_integrity
akan ada di ctx.attr
.
Parameter
ctx |
tidak diperlukan.
Konteks repositori aturan repositori yang memanggil utilitas ini . |
auth |
opsional.
default-nya adalah None
Dikte opsional yang menentukan informasi autentikasi untuk beberapa URL. |
get_auth
load("@bazel//tools/build_defs/repo:utils.bzl", "get_auth") get_auth(ctx, urls)
Fungsi utilitas untuk mendapatkan kredensial autentikasi yang benar untuk daftar URL dari file .netrc.
Dukung atribut netrc dan auth_patterns opsional jika tersedia.
Parameter
ctx |
tidak diperlukan.
Konteks repositori aturan repositori yang memanggil utilitas ini . |
urls |
tidak diperlukan.
daftar url untuk dibaca |
Hasil
perintah autentikasi yang dapat diteruskan ke repository_ctx.download
mungkin
load("@bazel//tools/build_defs/repo:utils.bzl", "maybe") maybe(repo_rule, name, **kwargs)
Fungsi utilitas untuk hanya menambahkan repositori jika belum ada.
Ini untuk mengimplementasikan makro repositori.bzl yang aman yang didokumentasikan dalam 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 lainnya yang diteruskan ke fungsi {i>repo_rule<i}. |
Hasil
Tidak ada, menentukan repositori saat diperlukan sebagai efek samping.
parse_netrc
load("@bazel//tools/build_defs/repo:utils.bzl", "parse_netrc") parse_netrc(contents, filename)
Fungsi utilitas untuk mengurai setidaknya satu file .netrc dasar.
Parameter
contents |
tidak diperlukan.
input untuk parser. |
filename |
opsional.
default-nya adalah None
nama file yang akan digunakan dalam pesan {i>error<i}, jika ada. |
Hasil
memetakan nama mesin ke sebuah {i>dict<i} dengan informasi yang diberikan tentang mereka
patch
load("@bazel//tools/build_defs/repo:utils.bzl", "patch") patch(ctx, patches, patch_cmds, patch_cmds_win, patch_tool, patch_args, auth)
Implementasi patching repositori yang sudah diekstrak.
Aturan ini dimaksudkan untuk digunakan dalam fungsi implementasi
aturan repositori. Jika parameternya patches
, patch_tool
,
patch_args
, patch_cmds
, dan patch_cmds_win
tidak ditentukan
lalu kunci tersebut akan diambil dari ctx.attr
.
Parameter
ctx |
tidak diperlukan.
Konteks repositori aturan repositori yang memanggil 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 untuk dijalankan patching, diteruskan satu per satu waktu untuk memusnahkan -c. Daftar string |
patch_cmds_win |
opsional.
default-nya adalah None
Perintah Powershell yang dijalankan untuk patching, diteruskan satu per satu ke PowerShell /c. Daftar string. Jika Nilai boolean parameter ini adalah false, patch_cmds akan menjadi digunakan dan parameter ini akan diabaikan. |
patch_tool |
opsional.
default-nya adalah None
Jalur alat patch yang akan dieksekusi untuk penerapan patching. String. |
patch_args |
opsional.
default-nya adalah None
Argumen yang akan diteruskan ke alat patch. Daftar string. |
auth |
opsional.
default-nya adalah None
Dikte opsional yang menentukan informasi autentikasi untuk beberapa URL. |
read_netrc
load("@bazel//tools/build_defs/repo:utils.bzl", "read_netrc") read_netrc(ctx, filename)
Fungsi utilitas untuk mengurai setidaknya satu file .netrc dasar.
Parameter
ctx |
tidak diperlukan.
Konteks repositori aturan repositori yang memanggil utilitas ini . |
filename |
tidak diperlukan.
nama file .netrc yang akan dibaca |
Hasil
memetakan nama mesin ke sebuah {i>dict<i} dengan informasi yang diberikan tentang mereka
read_user_netrc
load("@bazel//tools/build_defs/repo:utils.bzl", "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
memetakan nama mesin ke {i>dict<i} dengan informasi yang disediakan tentangnya.
update_attrs
load("@bazel//tools/build_defs/repo:utils.bzl", "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 yang dapat direproduksi.
Parameter
orig |
tidak diperlukan.
terjemahan atribut yang sebenarnya ditetapkan (baik secara eksplisit maupun implisit) dengan pemanggilan aturan tertentu |
keys |
tidak diperlukan.
kumpulan atribut lengkap yang ditentukan dalam aturan ini |
override |
tidak diperlukan.
terjemahan atribut yang akan diganti atau ditambahkan ke asal |
Hasil
terjemahan atribut dengan kunci dari penggantian yang disisipkan/diperbarui
use_netrc
load("@bazel//tools/build_defs/repo:utils.bzl", "use_netrc") use_netrc(netrc, urls, patterns)
Hitung auth dict dari file netrc yang diuraikan dan daftar URL.
Parameter
netrc |
tidak diperlukan.
file netrc yang sudah diuraikan menjadi dict, misalnya, yang diperoleh dari read_netrc |
urls |
tidak diperlukan.
daftar URL. |
patterns |
tidak diperlukan.
dict opsional url untuk pola otorisasi |
Hasil
dict cocok sebagai argumen auth untuk ctx.download; lebih tepatnya, dikte akan memetakan semua URL tempat file {i>netrc<i} memberikan {i>login<i} dan {i>password<i} ke yang berisi info login, sandi, dan pola otorisasi opsional terkait, serta pemetaan "{i>type<i}" ke "dasar" atau "pola".
workspace_and_buildfile
load("@bazel//tools/build_defs/repo:utils.bzl", "workspace_and_buildfile") workspace_and_buildfile(ctx)
Fungsi utilitas untuk menulis WORKSPACE dan, jika diminta, file BUILD.
Aturan ini dimaksudkan untuk digunakan dalam fungsi implementasi
aturan repositori.
Tutorial ini mengasumsikan parameter name
, build_file
, build_file_content
,
workspace_file
, dan workspace_file_content
menjadi
ada di ctx.attr
; empat yang terakhir mungkin
dengan nilai {i>None<i}.
Parameter
ctx |
tidak diperlukan.
Konteks repositori aturan repositori yang memanggil utilitas ini . |