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 đối tượng repository_ctx làm đối số cho hàm implementation
khi tạo quy tắc kho lưu trữ.
Hội viên
- attr
- xóa
- tải xuống
- download_and_extract
- thực thi
- trích xuất
- tệp
- getenv
- name
- hệ điều hành
- bản vá
- path
- đọc
- report_progress
- symlink
- mẫu
- đồng hồ
- watch_tree
- sản phẩm nào
- workspace_root
attr
struct repository_ctx.attrMột cấu trúc để truy cập vào các giá trị của thuộc tính. Giá trị do người dùng cung cấp (nếu không, hệ thống sẽ sử dụng giá trị mặc định).
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 đã thực sự bị xoá bởi lệnh gọi này hay chưa.
Thông số
Thông số | Mô tả |
---|---|
path
|
chuỗi; hoặc đường dẫn;
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 đã 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 sha256
và integrity
.
Thông số
Thông số | Mô tả |
---|---|
url
|
chuỗi; hoặc Iterable 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
|
chuỗi; hoặc Nhãn; hoặc đường dẫn; giá trị 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
|
mặc định là '' hàm băm SHA-256 dự kiến của tệp đã tải xuống. Hàm băm này phải khớp với hàm băm SHA-256 của tệp đã tải xuống. Việc bỏ qua SHA-256 sẽ gây rủi ro bảo mật vì các tệp từ xa có thể thay đổi. Tốt nhất là bạn không nên bỏ qua trường này vì sẽ khiến bản dựng của bạn không kín. Bạn không bắt buộc phải làm việc này để việc phát triển trở nên dễ dàng hơn, nhưng bạn nên thiết lập trước khi xuất bản. Trước tiên, bộ nhớ đệm kho lưu trữ sẽ được kiểm tra để tìm tệp có hàm băm đã cho (nếu có); quá trình tải xuống sẽ chỉ được thực hiện 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. |
executable
|
mặc định là False đặt cờ thực thi trên tệp đã tạo, false theo mặc định. |
allow_fail
|
mặc định là False Nếu được đặt, hãy cho biết lỗi trong giá trị trả về thay vì báo 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 hạn chế các lượt truy cập vào bộ nhớ đệm ở những trường hợp tệp được thêm vào bộ nhớ đệm có cùng mã chuẩn hoá. Theo mặc định, tính năng lưu vào bộ nhớ đệm sử dụng tổng kiểm( sha256 hoặc integrity ).
|
auth
|
mặc định là {} Một tập hợp từ điển 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 dict không bắt buộc chỉ định tiêu đề http cho tất cả URL. |
integrity
|
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 giá trị tổng kiểm của tệp đã tải xuống. Việc bỏ qua tổng kiểm tra là một rủi ro bảo mật vì các tệp từ xa có thể thay đổi. Tốt nhất là bạn không nên bỏ qua trường này vì sẽ khiến bản dựng của bạn không kín. Bạn không bắt buộc phải làm việc này để việc phát triển trở nên dễ dàng hơn, nhưng bạn nên thiết lập trước khi xuất bả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ệp có giá trị tổng kiểm đã cho; 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. |
block
|
mặc định là True Nếu được đặ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 bằng một phương thức duy nhất, 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ề thông thường hoặc gử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 tệp xuống đường dẫn đầu ra cho URL đã cung cấp, trích xuất tệ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 sha256
và integrity
.
Thông số
Thông số | Mô tả |
---|---|
url
|
chuỗi; hoặc Iterable 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
|
mặc định là '' hàm băm SHA-256 dự kiến của tệp đã tải xuống. Hàm băm này phải khớp với hàm băm SHA-256 của tệp đã tải xuống. Việc bỏ qua SHA-256 sẽ gây rủi ro bảo mật vì các tệp từ xa có thể thay đổi. Tốt nhất là bạn không nên bỏ qua trường này vì sẽ khiến bản dựng của bạn không kín. Bạn không bắt buộc phải làm việc này để việc phát triển trở nên dễ dàng hơn, nhưng bạn nên thiết lập trước khi xuất bản. Trước tiên, bộ nhớ đệm kho lưu trữ sẽ được kiểm tra để tìm tệp có hàm băm đã cho (nếu có); quá trình tải xuống sẽ chỉ được thực hiện 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 tệp lưu trữ của tệp đã tải xuống. Theo mặc định, loại tệp 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 "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 đã trích xuất. 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 tiền tố này nhiều lần trong build_file , bạn có thể dùng trường này để xoá tiền tố đó khỏi các tệp đã trích xuất.
|
allow_fail
|
mặc định là False Nếu được đặt, hãy cho biết lỗi trong giá trị trả về thay vì báo 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 hạn chế các lượt truy cập vào bộ nhớ đệm ở những trường hợp tệp được thêm vào bộ nhớ đệm có cùng mã chuẩn hoá. Theo mặc định, tính năng lưu vào bộ nhớ đệm sử dụng tổng kiểm( sha256 hoặc integrity ).
|
auth
|
mặc định là {} Một tập hợp từ điển 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 dict không bắt buộc chỉ định tiêu đề http cho tất cả URL. |
integrity
|
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 tổng kiểm tra là một rủi ro bảo mật 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 làm việc này để việc phát triển trở nên dễ dàng hơn, nhưng bạn nên thiết lập trước khi xuất bản. Trước tiên, nếu được cung cấp, bộ nhớ đệm kho lưu trữ sẽ được kiểm tra để tìm tệp có tổng kiểm đã cho; quá trình tải xuống sẽ chỉ được thực hiện 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. |
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 lưu trữ có tên khớp chính xác với một 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ể dùng tính năng này để trích xuất các tệp lưu trữ chứa tên tệp không phải Unicode hoặc có các tệp sẽ trích xuất vào cùng một đường dẫn trên các hệ thống tệp không phân biệt chữ hoa chữ thường. |
thực thi
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 của lệnh bị giới hạn bởi
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 sẽ được truyền vào quy trình.
Thông số
Thông số | Mô tả |
---|---|
arguments
|
bắt buộc Danh sách đối số, phần tử đầu tiên phải là đường dẫn đến chương trình cần thực thi. |
timeout
|
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 phải truyền một số biến môi trường 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 thư mục gốc của kho lưu trữ hoặc tuyệt đối. |
trích xuất
None
repository_ctx.extract(archive, output='', stripPrefix='', *, rename_files={}, watch_archive='auto')
Giải nén tệp lưu trữ vào thư mục kho lưu trữ.
Thông số
Thông số | Mô tả |
---|---|
archive
|
chuỗi; hoặc Nhãn; hoặc đường dẫn;
bắt buộc đường dẫn đế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
|
chuỗi; hoặc Nhãn; hoặc đường dẫn; giá trị mặc định là '' đường dẫn đến thư mục nơi giải nén tệp lưu trữ, tương ứng với thư mục kho lưu trữ. |
stripPrefix
|
mặc định là '' tiền tố thư mục để loại bỏ khỏi các tệp đã trích xuất. 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 tệp lưu trữ. Thay vì cần chỉ định tiền tố này nhiều lần trong build_file , bạn có thể dùng trường này để xoá tiền tố đó khỏi các tệp đã trích xuất.
|
rename_files
|
mặc định là {} Một dict 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 lưu trữ có tên khớp chính xác với một 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ể dùng tính năng này để trích xuất các tệp lưu trữ chứa tên tệp không phải Unicode hoặc có các tệp sẽ trích xuất vào cùng một đường dẫn trên các hệ thống tệp không phân biệt chữ hoa chữ thường. |
watch_archive
|
mặc định là 'auto' liệu có xem tệp lưu trữ hay không. Có thể là chuỗi "yes" (có), "no" (không) hoặc "auto" (tự động). Việc truyền "yes" tương đương với việc gọi ngay phương thức watch() ; việc truyền "no" sẽ không cố gắng theo dõi tệp; việc truyền "auto" sẽ chỉ cố gắng theo dõi tệp khi được phép (xem tài liệu về 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.
Thông số
Thông số | Mô tả |
---|---|
path
|
chuỗi; hoặc Nhãn; hoặc đường dẫn;
bắt buộc đường dẫn của tệp cần tạo, tương ứng với 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 đã tạo, đúng theo mặc định. |
legacy_utf8
|
mặc định là True mã hoá nội dung tệp thành UTF-8, đúng 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.
Thông số
Thông số | Mô tả |
---|---|
name
|
string;
bắt buộc tên của biến môi trường mong muốn |
default
|
chuỗi; hoặc None ; giá trị mặc định là None Giá trị mặc định để trả về nếu không tìm thấy "tên" |
None
.
tên
string repository_ctx.nameTên của kho lưu trữ bên ngoài do quy tắc này tạo.
hệ điều hành
repository_os repository_ctx.osMột cấu trúc để truy cập 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à tệp định dạng diff hợp nhất tiêu chuẩn. Việc 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 bản vá.
Thông số
Thông số | Mô tả |
---|---|
patch_file
|
chuỗi; hoặc Nhãn; hoặc đường dẫn; 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
|
mặc định là 0 xoá số thành phần đầu tiên được chỉ định khỏi tên tệp. |
watch_patch
|
mặc định là 'auto' liệu có xem tệp bản vá hay không. Có thể là chuỗi "yes" (có), "no" (không) hoặc "auto" (tự động). 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 dẫn
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 đó 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 path là một đường dẫn, thì hàm này sẽ trả về đường dẫn đó nguyên trạng.
Thông số
Thông số | 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.
Thông số
Thông số | Mô tả |
---|---|
path
|
chuỗi; hoặc Nhãn; hoặc đường dẫn;
bắt buộc đường dẫn của tệp cần đọc. |
watch
|
mặc định là 'auto' liệu có theo dõi tệp hay không. Có thể là chuỗi "yes" (có), "no" (không) hoặc "auto" (tự động). 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
Thông số
Thông số | Mô tả |
---|---|
status
|
chuỗi; giá trị 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 |
liên kết tượng trưng
None
repository_ctx.symlink(target, link_name)
Tạo đường liên kết tượng trưng trên hệ thống tệp.
Thông số
Thông số | 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. |
link_name
|
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 cần tạo. |
ManualContentEmbargoesScheduleTemplate.xlsx
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á substitutions
sẽ được thay thế bằng giá trị tương ứng. Kết quả được viết trong path
. Bạn có thể đặ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.
Thông số
Thông số | Mô tả |
---|---|
path
|
chuỗi; hoặc Nhãn; hoặc đường dẫn;
bắt buộc đường dẫn của tệp cần tạo, tương ứng với thư mục kho lưu trữ. |
template
|
chuỗi; hoặc Nhãn; hoặc đường dẫn;
bắt buộc đường dẫn đến tệp mẫu. |
substitutions
|
mặc định là {} các giá trị thay thế cần 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 đã tạo, đúng theo mặc định. |
watch_template
|
mặc định là 'auto' liệu có xem tệp mẫu hay không. Có thể là chuỗi "yes" (có), "no" (không) hoặc "auto" (tự động). Việc truyền "yes" tương đương với việc gọi ngay phương thức watch() ; việc truyền "no" sẽ không cố gắng theo dõi tệp; việc truyền "auto" sẽ chỉ cố gắng theo dõi tệp khi được phép (xem tài liệu về 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, cho dù đường dẫn đó có tồn tại hay không, hoặc cho dù đó là 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à tệp); nếu đường dẫn là tệp nhưng hiện là thư mục hoặc ngược lại; và nếu đường dẫn bắt đầu hoặc ngừng tồn tại. Lưu ý rằng 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. Thay vào đó, hãy sử dụng path.readdir()
.
Xin lưu ý rằng việc cố gắng theo dõi các đường dẫn bên trong kho lưu trữ đ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 một đường dẫn bên ngoài không gian làm việc Bazel hiện tại cũng sẽ dẫn đến lỗi.
Thông số
Thông số | 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.Xin lưu ý rằng việc cố gắng theo dõi các đường dẫn bên trong kho lưu trữ đang được tìm nạp sẽ dẫn đến lỗi.
Thông số
Thông số | Mô tả |
---|---|
path
|
chuỗi; hoặc Nhãn; hoặc đường dẫn;
bắt buộc đường dẫn của cây thư mục cần 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 nào như vậy trong đường dẫn.
Thông số
Thông số | Mô tả |
---|---|
program
|
bắt buộc Chương trình để tìm trong đường dẫn. |
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.