Quy tắc
sh_binary
Xem nguồn quy tắcsh_binary(name, deps, srcs, data, args, compatible_with, deprecation, env, env_inherit, exec_compatible_with, exec_group_compatible_with, exec_properties, features, output_licenses, package_metadata, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
Quy tắc sh_binary
được dùng để khai báo tập lệnh shell có thể thực thi.
(sh_binary
là một tên gọi sai: đầu ra của nó không nhất thiết phải là các 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 gian thực thi.
Bạn nên đặt tên cho các quy tắc sh_binary()
theo 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 nhau.
sh_binary
tuân theo shebang, vì vậy, bạn có thể sử dụng mọi trình thông dịch có sẵn (ví dụ:
#!/bin/zsh
)
Ví dụ:
Đối với một 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 riêng cho mục tiêu này. |
deps
|
Danh sách nhãn; mặc định là deps tại Các thuộc tính điển hình do hầu hết các quy tắc xây dựng xác định.
Bạn nên 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 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 lệnh |
env_inherit
|
Danh sách các chuỗi; mặc định là |
sh_library
Xem nguồn quy tắcsh_library(name, deps, srcs, data, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, package_metadata, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
Mục đích chính của quy tắc này là tổng hợp một "thư viện" logic bao gồm các tập lệnh liên quan (các chương trình bằng ngôn ngữ diễn giải không yêu cầu biên dịch hoặc liên kết, chẳng hạn như Bourne shell) và mọi dữ liệu mà các chương trình đó cần trong thời gian chạy. Sau đó, bạn có thể sử dụng các "thư viện" như vậy từ 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 diễn giải, 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": xét cho 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 đều tương đương nhau: srcs
, deps
và data
.
Cách triển khai hiện tại không phân biệt giữa các phần tử của những danh sách này.
Cả ba thuộc tính đề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 của chúng (như với 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 riêng cho mục tiêu này. |
deps
|
Danh sách nhãn; mặc định là deps tại Các thuộc tính điển hình do hầu hết các quy tắc xây dựng xác định.
Bạn nên 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 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 lệnh |
sh_test
Xem nguồn quy tắcsh_test(name, deps, srcs, data, args, compatible_with, deprecation, env, env_inherit, exec_compatible_with, exec_group_compatible_with, exec_properties, features, flaky, local, package_metadata, restricted_to, shard_count, size, tags, target_compatible_with, testonly, timeout, toolchains, visibility)
Quy tắc sh_binary
được dùng để khai báo tập lệnh shell có thể thực thi.
(sh_binary
là một tên gọi sai: đầu ra của nó không nhất thiết phải là các 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 gian thực thi.
Bạn nên đặt tên cho các quy tắc sh_binary()
theo 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 nhau.
sh_binary
tuân theo shebang, vì vậy, bạn có thể sử dụng mọi trình thông dịch có sẵn (ví dụ:
#!/bin/zsh
)
Ví dụ:
Đối với một 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 riêng cho mục tiêu này. |
deps
|
Danh sách nhãn; mặc định là deps tại Các thuộc tính điển hình do hầu hết các quy tắc xây dựng xác định.
Bạn nên 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 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 lệnh |