sử dụng quy tắc kho lưu trữ

Báo cáo vấn đề Xem nguồn Nightly · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

Bạn có thể tải các hàm sau từ @bazel_tools//tools/build_defs/repo:utils.bzl.

Các tiện ích để thao tác với kho lưu trữ bên ngoài, sau khi được tìm nạp.

Thiết lập

Các tiện ích này được dùng cho các quy tắc khác của kho lưu trữ. Bạn có thể tải các tệp này như sau.

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

download_remote_files

download_remote_files(ctx, auth)

Hàm tiện ích để tải tệp từ xa xuống.

Quy tắc này được dùng trong hàm triển khai của quy tắc kho lưu trữ. Hàm này giả định các tham số remote_file_urlsremote_file_integrity có trong ctx.attr.

Thông số

ctx bắt buộc.

Ngữ cảnh kho lưu trữ của quy tắc kho lưu trữ gọi hàm số hiệu dụng này.

auth không bắt buộc. mặc định là None

Một lệnh chính xác không bắt buộc chỉ định thông tin xác thực cho một số URL.

get_auth

get_auth(ctx, urls)

Hàm tiện ích để lấy lệnh chính xác xác thực chính xác cho danh sách các URL trong tệp .netrc.

Hỗ trợ các thuộc tính netrc và auth_patterns không bắt buộc nếu có.

Thông số

ctx bắt buộc.

Ngữ cảnh kho lưu trữ của quy tắc kho lưu trữ gọi hàm tiện ích này.

urls bắt buộc.

danh sách url cần đọc

Giá trị trả về

lệnh chính xác xác thực có thể được truyền đến kho_ctx.download

có thể

maybe(repo_rule, name, kwargs)

Hàm tiện ích chỉ thêm kho lưu trữ nếu chưa có.

Việc này là để triển khai các kho lưu trữ an toàn.bzl macro được nêu trong https://bazel.build/rules/deploying#attributes.

Thông số

repo_rule bắt buộc.

hàm quy tắc kho lưu trữ.

name bắt buộc.

tên của kho lưu trữ cần tạo.

kwargs không bắt buộc.

các đối số còn lại được truyền đến hàm repo_rule.

Giá trị trả về

Không có gì, xác định kho lưu trữ khi cần dưới dạng tác dụng phụ.

parse_netrc

parse_netrc(contents, filename)

Hàm tiện ích để phân tích cú pháp ít nhất một tệp .netrc cơ bản.

Thông số

contents bắt buộc.

dữ liệu đầu vào cho trình phân tích cú pháp.

filename không bắt buộc. mặc định là None

tên tệp để sử dụng trong thông báo lỗi (nếu có).

Giá trị trả về

dict ánh xạ tên máy đến một dict có thông tin được cung cấp về các tên đó

bản vá

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

Triển khai việc vá một kho lưu trữ đã được trích xuất.

Quy tắc này được dùng trong hàm triển khai của quy tắc kho lưu trữ. Nếu bạn không chỉ định các tham số patches, patch_tool, patch_args, patch_cmdspatch_cmds_win, thì các tham số này sẽ được lấy từ ctx.attr.

Thông số

ctx bắt buộc.

Ngữ cảnh kho lưu trữ của quy tắc kho lưu trữ gọi hàm số hiệu dụng này.

patches không bắt buộc. mặc định là None

Các tệp bản vá cần áp dụng. Danh sách các chuỗi, Nhãn hoặc đường dẫn.

patch_cmds không bắt buộc. mặc định là None

Các lệnh Bash để chạy nhằm vá lỗi, được truyền lần lượt vào bash -c. Danh sách chuỗi

patch_cmds_win không bắt buộc. mặc định là None

Các lệnh Powershell để chạy cho việc vá, được truyền lần lượt đến powershell /c. Danh sách chuỗi. Nếu giá trị boolean của tham số này là false, patch_cmds sẽ được sử dụng và tham số này sẽ bị bỏ qua.

patch_tool không bắt buộc. mặc định là None

Đường dẫn của công cụ bản vá sẽ thực thi để áp dụng các bản vá. Chuỗi.

patch_args không bắt buộc. mặc định là None

Đối số để truyền đến công cụ vá. Danh sách chuỗi.

auth không bắt buộc. mặc định là None

Một lệnh chính xác không bắt buộc chỉ định thông tin xác thực cho một số URL.

read_netrc

read_netrc(ctx, filename)

Hàm tiện ích để phân tích cú pháp ít nhất một tệp .netrc cơ bản.

Thông số

ctx bắt buộc.

Ngữ cảnh kho lưu trữ của quy tắc kho lưu trữ gọi hàm tiện ích này.

filename là bắt buộc.

tên của tệp .netrc cần đọc

Giá trị trả về

dict ánh xạ tên máy đến một dict có thông tin được cung cấp về các tên đó

read_user_netrc

read_user_netrc(ctx)

Đọc tệp netrc mặc định của người dùng.

Thông số

ctx bắt buộc.

Ngữ cảnh kho lưu trữ của quy tắc kho lưu trữ gọi hàm hiệu dụng này.

Giá trị trả về

dict ánh xạ tên máy đến một dict có thông tin được cung cấp về các tên đó.

update_attrs

update_attrs(orig, keys, override)

Hàm tiện ích để thay đổi và thêm các thuộc tính đã chỉ định vào một lệnh gọi quy tắc kho lưu trữ cụ thể.

Thuộc tính này dùng để tạo quy tắc có thể tái tạo.

Thông số

orig bắt buộc.

dict của các thuộc tính đã đặt thực sự (rõ ràng hoặc ngầm ẩn) bằng một lệnh gọi quy tắc cụ thể

keys bắt buộc.

bộ thuộc tính hoàn chỉnh được xác định theo quy tắc này

override bắt buộc.

tập hợp các thuộc tính để ghi đè hoặc thêm vào orig

Giá trị trả về

dict của các thuộc tính có các khoá từ ghi đè được chèn/cập nhật

use_netrc

use_netrc(netrc, urls, patterns)

Tính toán một từ điển xác thực từ tệp netrc đã phân tích cú pháp và danh sách URL.

Thông số

netrc bắt buộc.

tệp netrc đã được phân tích cú pháp thành một từ điển, ví dụ: như được lấy từ read_netrc

urls bắt buộc.

danh sách URL.

patterns bắt buộc.

tập hợp các từ điển không bắt buộc của URL đến các mẫu uỷ quyền

Giá trị trả về

dict phù hợp làm đối số xác thực cho ctx.download; chính xác hơn, dict sẽ ánh xạ tất cả URL mà tệp netrc cung cấp thông tin đăng nhập và mật khẩu đến một dict chứa thông tin đăng nhập, mật khẩu và mẫu uỷ quyền không bắt buộc tương ứng, cũng như ánh xạ "type" (loại) thành "basic" (cơ bản) hoặc "pattern" (mẫu).

workspace_and_buildfile

workspace_and_buildfile(ctx)

Hàm tiện ích để ghi WORKSPACE và tệp BUILD (nếu được yêu cầu).

Quy tắc này được dùng trong hàm triển khai của quy tắc kho lưu trữ. Hàm này giả định các tham số name, build_file, build_file_content, workspace_fileworkspace_file_content có trong ctx.attr; 4 tham số sau có thể có giá trị là Không.

Thông số

ctx bắt buộc.

Ngữ cảnh kho lưu trữ của quy tắc kho lưu trữ gọi hàm tiện ích này.