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

Bối 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ượng repository_ctx làm đối số cho hàm implementation khi tạo một quy tắc kho lưu trữ.

Hội viên

attr

struct repository_ctx.attr

Một cấu trúc để truy cập vào các giá trị của thuộc tính. Người dùng cung cấp các giá trị này (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 giá trị bool, cho biết liệu tệp hoặc thư mục có thực sự bị xoá bằng lệnh gọi này hay không.

Thông số

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

tải xuống

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

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, thì đó là một hàm băm của tệp có các trường sha256integrity.

Thông số

Thông số Mô tả
url string; hoặc Iterable của strings; bắt buộc
Danh sách các 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 mặc định là ''
hàm băm SHA-256 dự kiến của tệp đã tải xuống. Giá trị 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 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à việc bỏ qua trường này sẽ khiến bản dựng của bạn không khép kín. Bạn không bắt buộc phải đặt để phát triển dễ dàng hơn, nhưng bạn nên đặt trước khi vận chuyển.
executable mặc định là False
đặt cờ thực thi trên tệp đã tạo, mặc định là false.
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 bộ nhớ đệm đối với những trường hợp mà tệp được thêm vào bộ nhớ đệm có cùng mã nhận dạng chuẩn
auth mặc định là {}
Một từ điển không bắt buộc chỉ định thông tin xác thực cho một số URL.
integrity mặc định là ''
Tổng kiểm tra 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à việc bỏ qua trường này sẽ khiến bản dựng của bạn không khép kín. Bạn không bắt buộc phải đặt để phát triển dễ dàng hơn, nhưng bạn nên đặt trước khi vận chuyển.

download_and_extract

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

Tải một 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, thì một hàm băm của tệp có các trường sha256integrity.

Thông số

Thông số Mô tả
url string; hoặc Iterable của strings; bắt buộc
Danh sách các 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 kho 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. Giá trị 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 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à việc bỏ qua trường này sẽ khiến bản dựng của bạn không khép kín. Bạn không bắt buộc phải đặt để phát triển dễ dàng hơn, nhưng bạn nên đặt trước khi vận chuyển. Nếu được cung cấp, trước tiên, bộ nhớ đệm kho lưu trữ sẽ được kiểm tra để tìm một tệp có hàm bă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.
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õ "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 mặc định là ''
, một tiền tố thư mục cần 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ì phải chỉ định tiền tố này nhiều lần 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 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 bộ nhớ đệm đối với những trường hợp mà tệp được thêm vào bộ nhớ đệm có cùng mã nhận dạng chuẩn
auth mặc định là {}
Một từ điển không bắt buộc chỉ định thông tin xác thực cho một số URL.
integrity mặc định là ''
Tổng kiểm tra 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à việc bỏ qua trường này sẽ khiến bản dựng của bạn không khép kín. Bạn không bắt buộc phải đặt để phát triển dễ dàng hơn, nhưng bạn nên đặt trước khi vận chuyển.
rename_files mặc định là {}
Một từ điển 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 có bất kỳ điều chỉnh nào về tiền tố thư mục. Bạn có thể dùng tuỳ chọn này để trích xuất những tệp lưu trữ có tên tệp không phải là Unicode hoặc có các tệp sẽ được 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 do danh sách đối số đưa ra. 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 đầu ra 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 đến quy trình.

Thông số

Thông số Mô tả
arguments required
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 một số biến môi trường phải được đặt để truyền đến quy trình.
quiet mặc định là True
Nếu stdout và stderr sẽ được in ra thiết bị đầu cuối.
working_directory mặc định là ""
Thư mục đang hoạt động để thực thi lệnh. Có thể tương đối 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={})

Giải nén một tệp lưu trữ vào thư mục kho lưu trữ.

Thông số

Thông số Mô tả
archive string; hoặc Label; hoặc path; bắt buộc
đường dẫn đến kho 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 kho lưu trữ sẽ được giải nén, tương ứng với thư mục kho lưu trữ.
stripPrefix mặc định là ''
, một tiền tố thư mục cần 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ì phải chỉ định tiền tố này nhiều lần 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 từ điển 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 có bất kỳ điều chỉnh nào về tiền tố thư mục. Bạn có thể dùng tuỳ chọn này để trích xuất những tệp lưu trữ có tên tệp không phải là Unicode hoặc có các tệp sẽ được 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.

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ữ với nội dung được cung cấp.

Thông số

Thông số Mô tả
path string; hoặc Label; hoặc path; required
đườ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, theo mặc định là trống.
executable mặc định là True
đặt cờ thực thi trên tệp đã tạo, theo mặc định là true.
legacy_utf8 mặc định là True
mã hoá nội dung tệp thành UTF-8, mặc định là true. Các phiên bản trong tương lai sẽ thay đổi giá trị mặc định và xoá tham số này.

tên

string repository_ctx.name

Tê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.os

Mộ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)

Áp dụng tệp 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 chênh lệch hợp nhất tiêu chuẩn. Việc triển khai bản vá gốc của Bazel không hỗ trợ so khớp mờ và bản vá nhị phân như công cụ dòng lệnh patch.

Thông số

Thông số Mô tả
patch_file string; hoặc Label; hoặc path; bắt buộc
Tệp vá để á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à đường dẫn tương đối, đường dẫn này sẽ phân giải thành thư mục kho lưu trữ.
strip mặc định là 0
xoá số lượng thành phần đầu tiên được chỉ định khỏi tên tệp.

đườ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ẽ được 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 các kho lưu trữ từ xa được thực thi trong giai đoạn phân tích và do đó 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ì đường dẫn đó sẽ được trả về nguyên trạng.

Thông số

Thông số Mô tả
path string; hoặc Label; hoặc path; required
string, label hoặc path mà từ đó tạo ra một đường dẫn

đọc

string repository_ctx.read(path)

Đọ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 string; hoặc Label; hoặc path; required
đường dẫn của tệp cần đọc.

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 string; default is ''
string 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.

Thông số

Thông số Mô tả
target string; hoặc Label; hoặc path; required
Đường dẫn mà symlink sẽ trỏ đến.
string; hoặc Label; hoặc path; required
Đường dẫn của symlink cần tạo, tương ứng với thư mục kho lưu trữ.

ManualContentEmbargoesScheduleTemplate.xlsx

None repository_ctx.template(path, template, substitutions={}, executable=True)

Tạo một tệp mới bằng cách sử dụng template. Mọi lần xuất hiện trong template của một khoá 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ể đặt 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.

Thông số

Thông số Mô tả
path string; hoặc Label; hoặc path; required
đường dẫn của tệp cần tạo, tương ứng với thư mục kho lưu trữ.
template string; hoặc Label; hoặc path; required
đường dẫn đến tệp mẫu.
substitutions mặc định là các phép 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, theo mặc định là true.

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 None 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 required
Chương trình cần 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.