Quy tắc
sh_binary
Xem nguồn quy tắcsh_binary(name, deps, srcs, data, args, compatible_with, deprecation, distribs, env, exec_compatible_with, exec_properties, features, licenses, output_licenses, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
Quy tắc sh_binary
dùng để khai báo các tập lệnh shell có thể thực thi.
(sh_binary
là một từ viết sai: dữ liệu đầu ra của ứng dụng không nhất thiết là tệp nhị phân.) Quy tắc này đảm bảo rằng tất cả các phần phụ thuộc đều được tạo và xuất hiện trong vùng runfiles
tại thời điểm thực thi.
Bạn nên đặt tên cho các quy tắc sh_binary()
sau tên của tập lệnh trừ đi phần mở rộng (ví dụ: .sh
); tên quy tắc và tên tệp phải khác biệt.
sh_binary
tuân theo nguyên tắc cộng đồng, vì vậy, bạn có thể sử dụng bất kỳ thông dịch viên nào có sẵn (ví dụ:
#!/bin/zsh
)
Ví dụ:
Đối với tập lệnh shell đơn giản không có phần phụ thuộc và một số tệp dữ liệu:
sh_binary( name = "foo", srcs = ["foo.sh"], data = glob(["datafiles/*.txt"]), )
Đối số
Thuộc tính | |
---|---|
name |
Tên; bắt buộc Tên duy nhất cho mục tiêu này. |
deps
|
Danh sách nhãn; mặc định là deps tại phần Các thuộc tính điển hình được xác định theo hầu hết các quy tắc xây dựng.
Bạn nên sử dụng thuộc tính này để liệt kê các quy tắc |
srcs
|
Danh sách nhãn; bắt buộc Tệp chứa tập lệnh shell.
Thuộc tính này phải là một danh sách singleton có phần tử là tập lệnh shell.
Tập lệnh này phải thực thi được và có thể là tệp nguồn hoặc tệp được tạo.
Tất cả các tệp khác cần có trong thời gian chạy (cho dù là tập lệnh hay dữ liệu) đều thuộc thuộc tính |
sh_library
Xem nguồn quy tắcsh_library(name, deps, srcs, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)
Mục đích chính của quy tắc này là tổng hợp một "thư viện" logic gồm các tập lệnh có liên quan – các chương trình bằng ngôn ngữ thông dịch không yêu cầu biên dịch hoặc liên kết, chẳng hạn như shell Bourne – và mọi dữ liệu mà các chương trình đó cần trong thời gian chạy. Sau đó, các "thư viện" như vậy có thể được sử dụng qua thuộc tính data
của một hoặc nhiều quy tắc sh_binary
.
Bạn có thể sử dụng quy tắc filegroup
để tổng hợp các tệp
dữ liệu.
Trong các ngôn ngữ lập trình thông dịch, không phải lúc nào cũng có sự phân biệt rõ ràng giữa "mã" và "dữ liệu": sau cùng, chương trình chỉ là "dữ liệu" theo quan điểm của trình thông dịch. Vì lý do này, quy tắc này có 3 thuộc tính về cơ bản là tương đương: srcs
, deps
và data
.
Cách triển khai hiện tại không phân biệt các thành phần của những danh sách này.
Cả 3 thuộc tính này đều chấp nhận các quy tắc, tệp nguồn và tệp được tạo.
Tuy nhiên, bạn nên sử dụng các thuộc tính cho mục đích thông thường (giống như các quy tắc khác).
Ví dụ
sh_library( name = "foo", data = [ ":foo_service_script", # an sh_binary with srcs ":deploy_foo", # another sh_binary with srcs ], )
Đối số
Thuộc tính | |
---|---|
name |
Tên; bắt buộc Tên duy nhất cho mục tiêu này. |
deps
|
Danh sách nhãn; mặc định là deps tại phần Các thuộc tính điển hình được xác định theo hầu hết các quy tắc xây dựng.
Bạn nên sử dụng thuộc tính này để liệt kê các quy tắc |
srcs
|
Danh sách nhãn; mặc định là
Bạn nên sử dụng thuộc tính này để liệt kê các tệp nguồn của tập lệnh shell thuộc thư viện này. Các tập lệnh có thể tải các tập lệnh khác bằng cách sử dụng lệnh |
sh_test
Xem nguồn quy tắcsh_test(name, deps, srcs, data, args, compatible_with, deprecation, distribs, env, env_inherit, exec_compatible_with, exec_properties, features, flaky, licenses, local, restricted_to, shard_count, size, tags, target_compatible_with, testonly, timeout, toolchains, visibility)
Quy tắc sh_test()
tạo một chương trình kiểm thử được viết dưới dạng tập lệnh shell Bourne.
Xem những thuộc tính phổ biến cho tất cả quy tắc kiểm thử (*_test).
Ví dụ
sh_test( name = "foo_integration_test", size = "small", srcs = ["foo_integration_test.sh"], deps = [":foo_sh_lib"], data = glob(["testdata/*.txt"]), )
Đối số
Thuộc tính | |
---|---|
name |
Tên; bắt buộc Tên duy nhất cho mục tiêu này. |
deps
|
Danh sách nhãn; mặc định là deps tại phần Các thuộc tính điển hình được xác định theo hầu hết các quy tắc xây dựng.
Bạn nên sử dụng thuộc tính này để liệt kê các quy tắc |
srcs
|
Danh sách nhãn; bắt buộc Tệp chứa tập lệnh shell.
Thuộc tính này phải là một danh sách singleton có phần tử là tập lệnh shell.
Tập lệnh này phải thực thi được và có thể là tệp nguồn hoặc tệp được tạo.
Tất cả các tệp khác cần có trong thời gian chạy (cho dù là tập lệnh hay dữ liệu) đều thuộc thuộc tính |