Quy tắc shell

Quy tắc

sh_binary

Xem mã nguồn quy tắc
sh_binary(name, deps, srcs, data, args, compatible_with, deprecation, distribs, env, env_inherit, exec_compatible_with, exec_properties, features, 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ên gọi không chính xác: đầu ra của quy tắc này 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ả phần phụ thuộc đều được xây dựng và xuất hiện trong khu vực 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() theo tên của tập lệnh trừ phần đuôi (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ể dùng bất kỳ trình thông dịch nào hiện có (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 duy nhất cho mục tiêu này.

deps

Danh sách nhãn; giá trị mặc định là []

Danh sách các mục tiêu "thư viện" cần tổng hợp vào mục tiêu này. Xem nhận xét chung về deps tại Các thuộc tính thường gặp 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 sh_library khác cung cấp mã nguồn chương trình được thông dịch mà mã trong srcs phụ thuộc vào. Các tệp do những quy tắc này cung cấp sẽ có trong số runfiles của mục tiêu này.

srcs

Danh sách nhãn; giá trị mặc định là []

Danh sách tệp đầu vào.

Bạn nên 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. Tập lệnh có thể tải các tập lệnh khác bằng lệnh source hoặc . của shell.

env_inherit

Danh sách chuỗi; giá trị mặc định là []

sh_library

Xem mã nguồn quy tắc
sh_library(name, deps, srcs, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, 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 – chương trình bằng ngôn ngữ được 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 tại thời gian chạy. Sau đó, bạn có thể dùng các "thư viện" như vậy từ thuộc tính data của một hoặc nhiều sh_binary quy tắc.

Bạn có thể 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 được 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": 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 là tương đương nhau: srcs, depsdata. Quá trình 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ả 3 thuộc tính đều chấp nhận quy tắc, tệp nguồn và tệp đã tạo. Tuy nhiên, bạn nên 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 duy nhất cho mục tiêu này.

deps

Danh sách nhãn; giá trị mặc định là []

Danh sách các mục tiêu "thư viện" cần tổng hợp vào mục tiêu này. Xem nhận xét chung về deps tại Các thuộc tính thường gặp 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 sh_library khác cung cấp mã nguồn chương trình được thông dịch mà mã trong srcs phụ thuộc vào. Các tệp do những quy tắc này cung cấp sẽ có trong số runfiles của mục tiêu này.

srcs

Danh sách nhãn; giá trị mặc định là []

Danh sách tệp đầu vào.

Bạn nên 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. Tập lệnh có thể tải các tập lệnh khác bằng lệnh source hoặc . của shell.

sh_test

Xem mã nguồn quy tắc
sh_test(name, deps, srcs, data, args, compatible_with, deprecation, distribs, env, env_inherit, exec_compatible_with, exec_properties, features, flaky, local, restricted_to, shard_count, size, tags, target_compatible_with, testonly, timeout, 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ên gọi không chính xác: đầu ra của quy tắc này 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ả phần phụ thuộc đều được xây dựng và xuất hiện trong khu vực 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() theo tên của tập lệnh trừ phần đuôi (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ể dùng bất kỳ trình thông dịch nào hiện có (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 duy nhất cho mục tiêu này.

deps

Danh sách nhãn; giá trị mặc định là []

Danh sách các mục tiêu "thư viện" cần tổng hợp vào mục tiêu này. Xem nhận xét chung về deps tại Các thuộc tính thường gặp 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 sh_library khác cung cấp mã nguồn chương trình được thông dịch mà mã trong srcs phụ thuộc vào. Các tệp do những quy tắc này cung cấp sẽ có trong số runfiles của mục tiêu này.

srcs

Danh sách nhãn; giá trị mặc định là []

Danh sách tệp đầu vào.

Bạn nên 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. Tập lệnh có thể tải các tập lệnh khác bằng lệnh source hoặc . của shell.