________ việc sử dụng dữ liệu

Báo cáo vấn đề Xem nguồn /3}·21}

Ngữ cảnh của quy tắc kho lưu trữ chứa các hàm trợ giúp và thông tin về các thuộc tính. Bạn sẽ nhận được một đối tượngrepository_ctx làm đối số cho hàm implementation khi tạo quy tắc về kho lưu trữ.

Hội viên

thuộc tính

struct repository_ctx.attr

Một cấu trúc để truy cập vào các giá trị của các thuộc tính. Các giá trị do người dùng cung cấp (nếu không, giá trị mặc định sẽ được sử dụng).

xóa

bool repository_ctx.delete(path)

Xoá một tệp hoặc thư mục. Trả về một boolean, cho biết tệp hoặc thư mục có thực sự bị xoá bởi lệnh gọi này hay không.

Tham số

Thông số Nội dung mô tả
path string; hoặc path; bắt buộc
Đường dẫn của tệp cần xoá, tương ứng với thư mục kho lưu trữ hoặc tuyệt đối. Có thể là một đường dẫn hoặc một chuỗi.

tải xuống

unknown repository_ctx.download(url, output='', sha256='', executable=False, allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', block=True)

Tải một tệp xuống đường dẫn đầu ra cho URL được cung cấp và trả về một cấu trúc chứa success, một cờ là true nếu quá trình tải xuống hoàn tất thành công và nếu thành công, một hàm băm của tệp có các trường sha256integrity.

Tham số

Thông số Nội dung mô tả
url string; hoặc Có thể lặp lại của chuỗi; bắt buộc
Danh sách URL phản chiếu tham chiếu đến cùng một tệp.
output string; hoặc Label; hoặc path; mặc định là đường dẫn ''
đến tệp đầu ra, tương ứng với thư mục kho lưu trữ.
sha256 giá trị mặc định là ''
hàm băm SHA-256 dự kiến của tệp được tải xuống. Giá trị này phải khớp với hàm băm SHA-256 của tệp được tải xuống. Bạn sẽ gặp rủi ro bảo mật nếu bỏ qua SHA-256 vì các tệp từ xa có thể thay đổi. Tốt nhất là bạn nên bỏ qua trường này để bản dựng của bạn không bị ngắt quãng. Bạn không bắt buộc phải thiết lập để phát triển ứng dụng dễ dàng hơn, nhưng nên thiết lập trước khi vận chuyển.
executable mặc định là False
đặt cờ thực thi trên tệp được tạo, mặc định là false.
allow_fail giá trị mặc định là False
Nếu được đặt, hãy chỉ ra lỗi trong giá trị trả về thay vì đưa ra lỗi cho các lượt tải xuống không thành công
canonical_id mặc định là ''
Nếu được đặt, hãy giới hạn lượt truy cập bộ nhớ đệm trong những trường hợp tệp được thêm vào bộ nhớ đệm có cùng mã nhận dạng chính tắc
auth mặc định là {}
Một lệnh chính tả (không bắt buộc) chỉ định thông tin xác thực cho một số URL.
headers mặc định là {}
Một lệnh chính tả không bắt buộc chỉ định tiêu đề http cho tất cả URL.
integrity giá trị mặc định là ''
Giá trị tổng kiểm dự kiến của tệp đã tải xuống, ở định dạng Tính toàn vẹn của tài nguyên phụ. Giá trị này phải khớp với tổng kiểm của tệp đã tải xuống. Việc bỏ qua giá trị tổng kiểm vì các tệp từ xa có thể thay đổi là một rủi ro bảo mật. Tốt nhất là bạn nên bỏ qua trường này để bản dựng của bạn không bị ngắt quãng. Bạn không bắt buộc phải thiết lập để phát triển ứng dụng dễ dàng hơn, nhưng nên thiết lập trước khi vận chuyển.
block mặc định là True
Nếu bạn đặt thành false, lệnh gọi sẽ trả về ngay lập tức và thay vì giá trị trả về thông thường, lệnh gọi này sẽ trả về một mã thông báo với một phương thức duy nhất là Wait(). Phương thức này sẽ chặn cho đến khi quá trình tải xuống hoàn tất và trả về giá trị trả về như bình thường hoặc gửi đi như bình thường.

download_and_extract

struct repository_ctx.download_and_extract(url, output='', sha256='', type='', stripPrefix='', allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', rename_files={})

Tải một tệp xuống đường dẫn đầu ra cho URL được cung cấp, giải nén tệp đó và trả về một cấu trúc chứa success. Cờ này là true nếu quá trình tải xuống hoàn tất thành công và nếu thành công, một hàm băm của tệp có các trường sha256integrity.

Tham số

Thông số Nội dung mô tả
url string; hoặc Có thể lặp lại của chuỗi; bắt buộc
Danh sách URL phản chiếu tham chiếu đến cùng một tệp.
output string; hoặc Label; hoặc path; mặc định là ''
đường dẫn đến thư mục nơi tệp lưu trữ sẽ được giải nén, tương ứng với thư mục kho lưu trữ.
sha256 giá trị mặc định là ''
hàm băm SHA-256 dự kiến của tệp được tải xuống. Giá trị này phải khớp với hàm băm SHA-256 của tệp được tải xuống. Bạn sẽ gặp rủi ro bảo mật nếu bỏ qua SHA-256 vì các tệp từ xa có thể thay đổi. Tốt nhất là bạn nên bỏ qua trường này để bản dựng của bạn không bị ngắt quãng. Bạn không bắt buộc phải thiết lập để phát triển ứng dụng dễ dàng hơn, nhưng nên thiết lập trước khi vận chuyển. Nếu được cung cấp, trước tiên, bộ nhớ đệm của kho lưu trữ sẽ được kiểm tra để tìm tệp có hàm băm nhất định; hệ thống chỉ tải xuống nếu không tìm thấy tệp trong bộ nhớ đệm. Sau khi tải xuống thành công, tệp sẽ được thêm vào bộ nhớ đệm.
type mặc định là ''
loại lưu trữ của tệp đã tải xuống. Theo mặc định, loại lưu trữ được xác định từ đuôi tệp của URL. Nếu tệp không có đuôi, bạn có thể chỉ định rõ ràng là "zip", "jar", "war", "aar", "tar", "tar.gz", "tgz", "tar.xz", "txz", ".tar.zst", ".tzst", "tar.bz2", ".tbz", ".ar" hoặc ".deb" tại đây.
stripPrefix giá trị mặc định là ''
một tiền tố thư mục để xoá khỏi các tệp đã giải nén. Nhiều tệp lưu trữ chứa một thư mục cấp cao nhất chứa tất cả các tệp trong kho lưu trữ. Thay vì cần chỉ định nhiều lần tiền tố này trong build_file, bạn có thể dùng trường này để loại bỏ tiền tố khỏi các tệp đã trích xuất.
allow_fail giá trị mặc định là False
Nếu được đặt, hãy chỉ ra lỗi trong giá trị trả về thay vì đưa ra lỗi cho các lượt tải xuống không thành công
canonical_id mặc định là ''
Nếu được đặt, hãy giới hạn lượt truy cập bộ nhớ đệm trong những trường hợp tệp được thêm vào bộ nhớ đệm có cùng mã nhận dạng chính tắc
auth mặc định là {}
Một lệnh chính tả (không bắt buộc) chỉ định thông tin xác thực cho một số URL.
headers mặc định là {}
Một lệnh chính tả không bắt buộc chỉ định tiêu đề http cho tất cả URL.
integrity giá trị mặc định là ''
Giá trị tổng kiểm dự kiến của tệp đã tải xuống, ở định dạng Tính toàn vẹn của tài nguyên phụ. Giá trị này phải khớp với tổng kiểm của tệp đã tải xuống. Việc bỏ qua giá trị tổng kiểm vì các tệp từ xa có thể thay đổi là một rủi ro bảo mật. Tốt nhất là bạn nên bỏ qua trường này để bản dựng của bạn không bị ngắt quãng. Bạn không bắt buộc phải thiết lập để phát triển ứng dụng dễ dàng hơn, nhưng nên thiết lập trước khi vận chuyển.
rename_files mặc định là {}
Một lệnh chính tả không bắt buộc chỉ định các tệp cần đổi tên trong quá trình trích xuất. Các mục nhập lưu trữ có tên khớp chính xác với khoá sẽ được đổi tên thành giá trị, trước khi điều chỉnh tiền tố thư mục. Bạn có thể sử dụng công cụ này để trích xuất các tệp lưu trữ có chứa tên tệp không phải Unicode hoặc có tệp sẽ giải nén sang cùng một đường dẫn trong hệ thống tệp không phân biệt chữ hoa chữ thường.

execute

exec_result repository_ctx.execute(arguments, timeout=600, environment={}, quiet=True, working_directory="")

Thực thi lệnh được cung cấp bởi danh sách các đối số. Thời gian thực thi lệnh này được giới hạn trong timeout (tính bằng giây, mặc định là 600 giây). Phương thức này trả về một cấu trúc exec_result chứa kết quả của lệnh. Bạn có thể dùng bản đồ environment để ghi đè một số biến môi trường cần truyền vào quy trình.

Tham số

Thông số Nội dung mô tả
arguments bắt buộc
Danh sách các đối số, phần tử đầu tiên phải là đường dẫn đến chương trình để thực thi.
timeout giá trị mặc định là 600
thời lượng tối đa của lệnh tính bằng giây (mặc định là 600 giây).
environment mặc định là {}
buộc đặt một số biến môi trường phải truyền vào quy trình này.
quiet mặc định là True
Nếu stdout và stderr được in ra thiết bị đầu cuối.
working_directory mặc định là ""
Thư mục đang làm việc để thực thi lệnh. Có thể tương đối so với gốc hoặc tuyệt đối của kho lưu trữ.

trích xuất

None repository_ctx.extract(archive, output='', stripPrefix='', *, rename_files={}, watch_archive='auto')

Trích xuất một tệp lưu trữ vào thư mục kho lưu trữ.

Tham số

Thông số Nội dung mô tả
archive string; hoặc Label; hoặc path; đường dẫn bắt buộc
đến tệp lưu trữ sẽ được giải nén, tương ứng với thư mục kho lưu trữ.
output string; hoặc Label; hoặc path; mặc định là ''
đường dẫn đến thư mục nơi tệp lưu trữ sẽ được giải nén, tương ứng với thư mục kho lưu trữ.
stripPrefix giá trị mặc định là ''
một tiền tố thư mục để xoá khỏi các tệp đã giải nén. Nhiều tệp lưu trữ chứa một thư mục cấp cao nhất chứa tất cả các tệp trong kho lưu trữ. Thay vì cần chỉ định nhiều lần tiền tố này trong build_file, bạn có thể dùng trường này để loại bỏ tiền tố khỏi các tệp đã trích xuất.
rename_files mặc định là {}
Một lệnh chính tả không bắt buộc chỉ định các tệp cần đổi tên trong quá trình trích xuất. Các mục nhập lưu trữ có tên khớp chính xác với khoá sẽ được đổi tên thành giá trị, trước khi điều chỉnh tiền tố thư mục. Bạn có thể sử dụng công cụ này để trích xuất các tệp lưu trữ có chứa tên tệp không phải Unicode hoặc có tệp sẽ giải nén sang cùng một đường dẫn trong hệ thống tệp không phân biệt chữ hoa chữ thường.
watch_archive mặc định là 'auto'
có nên xem tệp lưu trữ hay không. Có thể là chuỗi "yes", "no" hoặc "auto". Việc chuyển "yes" tương đương với việc gọi ngay phương thức watch(); việc chuyển "no" không cố gắng xem tệp; việc chuyển "auto" sẽ chỉ cố gắng xem tệp khi việc này là hợp pháp (hãy xem tài liệu watch() để biết thêm thông tin.

tệp

None repository_ctx.file(path, content='', executable=True, legacy_utf8=True)

Tạo một tệp trong thư mục kho lưu trữ có nội dung được cung cấp.

Tham số

Thông số Nội dung mô tả
path string; hoặc Label; hoặc path; đường dẫn bắt buộc
của tệp cần tạo, liên quan đến thư mục kho lưu trữ.
content mặc định là ''
nội dung của tệp cần tạo, trống theo mặc định.
executable mặc định là True
đặt cờ thực thi trên tệp được tạo, true theo mặc định.
legacy_utf8 mặc định là True
mã hoá nội dung tệp thành UTF-8, true theo mặc định. Các phiên bản trong tương lai sẽ thay đổi giá trị mặc định và xoá thông số này.

getenv

string repository_ctx.getenv(name, default=None)

Trả về giá trị của một biến môi trường name dưới dạng một chuỗi nếu có hoặc default nếu không có.

Khi tạo theo cách tăng dần, mọi thay đổi đối với giá trị của biến do name đặt tên sẽ khiến kho lưu trữ này được tìm nạp lại.

Tham số

Thông số Nội dung mô tả
name string; bắt buộc
tên của biến môi trường mong muốn
default string; hoặc None; giá trị mặc định là None
Giá trị mặc định cần trả về nếu không tìm thấy `name`
Có thể trả về None.

tên

string repository_ctx.name

Tên của kho lưu trữ bên ngoài được tạo theo quy tắc này.

os

repository_os repository_ctx.os

Một cấu trúc để truy cập vào thông tin từ hệ thống.

bản vá

None repository_ctx.patch(patch_file, strip=0, *, watch_patch='auto')

Áp dụng tệp bản vá cho thư mục gốc của kho lưu trữ bên ngoài. Tệp bản vá phải là một tệp định dạng khác biệt thống nhất chuẩn. Quy trình triển khai bản vá gốc Bazel không hỗ trợ tính năng so khớp mờ và bản vá nhị phân như công cụ dòng lệnh của bản vá.

Tham số

Thông số Nội dung mô tả
patch_file string; hoặc Label; hoặc path; bắt buộc
Tệp bản vá cần áp dụng, có thể là nhãn, đường dẫn tương đối hoặc đường dẫn tuyệt đối. Nếu đó là một đường dẫn tương đối, thì đường dẫn này sẽ được phân giải thành thư mục kho lưu trữ.
strip giá trị mặc định là 0
loại bỏ số lượng các thành phần hàng đầu đã chỉ định khỏi tên tệp.
watch_patch mặc định là 'auto'
có nên xem tệp bản vá hay không. Có thể là chuỗi "yes", "no" hoặc "auto". Việc chuyển "yes" tương đương với việc gọi ngay phương thức watch(); việc chuyển "no" không cố gắng xem tệp; việc chuyển "auto" sẽ chỉ cố gắng xem tệp khi việc này là hợp pháp (hãy xem tài liệu watch() để biết thêm thông tin.

path

path repository_ctx.path(path)

Trả về một đường dẫn từ một chuỗi, nhãn hoặc đường dẫn. Nếu đường dẫn là tương đối, thì đường dẫn sẽ phân giải tương ứng với thư mục kho lưu trữ. Nếu đường dẫn là một nhãn, thì đường dẫn này sẽ phân giải thành đường dẫn của tệp tương ứng. Xin lưu ý rằng hệ thống lưu trữ từ xa được thực thi trong giai đoạn phân tích nên không thể phụ thuộc vào kết quả mục tiêu (nhãn phải trỏ đến một tệp không được tạo). Nếu đường dẫn là một đường dẫn, thì giá trị này sẽ không thay đổi trả về đường dẫn đó.

Tham số

Thông số Nội dung mô tả
path string; hoặc Label; hoặc path; chuỗi, nhãn hoặc đường dẫn
bắt buộc mà từ đó tạo ra đường dẫn

đọc

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

Đọc nội dung của một tệp trên hệ thống tệp.

Tham số

Thông số Nội dung mô tả
path string; hoặc Label; hoặc path; đường dẫn bắt buộc
của tệp cần đọc.
watch mặc định là 'auto'
liệu có xem tệp hay không. Có thể là chuỗi "yes", "no" hoặc "auto". Việc chuyển "yes" tương đương với việc gọi ngay phương thức watch(); việc chuyển "no" không cố gắng xem tệp; việc chuyển "auto" sẽ chỉ cố gắng xem tệp khi việc này là hợp pháp (hãy xem tài liệu watch() để biết thêm thông tin.

report_progress

None repository_ctx.report_progress(status='')

Cập nhật trạng thái tiến trình tìm nạp kho lưu trữ hoặc tiện ích mô-đun này

Tham số

Thông số Nội dung mô tả
status string; mặc định là chuỗi ''
mô tả trạng thái hiện tại của tiến trình tìm nạp

None repository_ctx.symlink(target, link_name)

Tạo một đường liên kết tượng trưng trên hệ thống tệp.

Tham số

Thông số Nội dung mô tả
target string; hoặc Label; hoặc path; bắt buộc
Đường dẫn mà đường liên kết tượng trưng phải trỏ đến.
string; hoặc Label; hoặc path; bắt buộc
Đường dẫn của đường liên kết tượng trưng để tạo.

mẫu

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

Tạo tệp mới bằng template. Mọi lần xuất hiện trong template của khoá của substitutions sẽ được thay thế bằng giá trị tương ứng. Kết quả được viết bằng path. Bạn có thể thiết lập một đối số executable không bắt buộc (mặc định là true) để bật hoặc tắt bit thực thi.

Tham số

Thông số Nội dung mô tả
path string; hoặc Label; hoặc path; đường dẫn bắt buộc
của tệp cần tạo, liên quan đến thư mục kho lưu trữ.
template string; hoặc Label; hoặc path; đường dẫn bắt buộc
đến tệp mẫu.
substitutions mặc định là {}
thay thế được thực hiện khi mở rộng mẫu.
executable mặc định là True
đặt cờ thực thi trên tệp được tạo, true theo mặc định.
watch_template mặc định là 'auto'
có nên xem tệp mẫu hay không. Có thể là chuỗi "yes", "no" hoặc "auto". Việc chuyển "yes" tương đương với việc gọi ngay phương thức watch(); việc chuyển "no" không cố gắng xem tệp; việc chuyển "auto" sẽ chỉ cố gắng xem tệp khi việc này là hợp pháp (hãy xem tài liệu watch() để biết thêm thông tin.

đồng hồ

None repository_ctx.watch(path)

Yêu cầu Bazel theo dõi các thay đổi đối với đường dẫn đã cho, liệu đường dẫn đó có tồn tại hay không hoặc đó là một tệp hay thư mục. Mọi thay đổi đối với tệp hoặc thư mục sẽ làm vô hiệu hoá tiện ích kho lưu trữ hoặc mô-đun này, đồng thời khiến chúng được tìm nạp lại hoặc đánh giá lại vào lần tiếp theo.

"Thay đổi" bao gồm các thay đổi đối với nội dung của tệp (nếu đường dẫn là một tệp); nếu đường dẫn là một tệp nhưng bây giờ là một thư mục hoặc ngược lại; và nếu đường dẫn bắt đầu hoặc dừng hiện có. Đáng chú ý là việc này không bao gồm các thay đổi đối với bất kỳ tệp nào trong thư mục đó nếu đường dẫn là một thư mục. Để làm được việc đó, hãy sử dụng path.readdir().

Xin lưu ý rằng việc cố gắng xem các đường dẫn bên trong kho lưu trữ hiện đang được tìm nạp hoặc bên trong thư mục đang hoạt động của tiện ích mô-đun hiện tại sẽ dẫn đến lỗi. Tiện ích mô-đun cố gắng theo dõi đường dẫn bên ngoài không gian làm việc Bazel hiện tại cũng sẽ gây ra lỗi.

Tham số

Thông số Nội dung mô tả
path string; hoặc Label; hoặc path; đường dẫn bắt buộc
của tệp cần xem.

watch_tree

None repository_ctx.watch_tree(path)

Yêu cầu Bazel theo dõi các thay đổi đối với bất kỳ tệp hoặc thư mục nào theo cách bắc cầu theo đường dẫn nhất định. Mọi thay đổi đối với nội dung của tệp, sự tồn tại của tệp hoặc thư mục, tên tệp hoặc tên thư mục sẽ khiến kho lưu trữ này được tìm nạp lại.

Lưu ý: Việc cố gắng xem các đường dẫn bên trong kho lưu trữ hiện đang được tìm nạp sẽ dẫn đến lỗi.

Tham số

Thông số Nội dung mô tả
path string; hoặc Label; hoặc path; đường dẫn bắt buộc
của cây thư mục để theo dõi.

thiết bị nào

path repository_ctx.which(program)

Trả về đường dẫn của chương trình tương ứng hoặc Không có nếu không có chương trình như vậy trong đường dẫn.

Tham số

Thông số Nội dung mô tả
program bắt buộc
Chương trình để tìm trong đường dẫn.
Có thể trả về None.

workspace_root

path repository_ctx.workspace_root

Đường dẫn đến không gian làm việc gốc của lệnh gọi bazel.