Shell 规则

报告问题 查看源代码 敬上 每晚 · 7.3。 · 7.2。 · 7.1。 · 7.0。 · 6.5

规则

sh_binary

<ph type="x-smartling-placeholder"></ph> 查看规则来源
sh_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)

sh_binary 规则用于声明可执行的 Shell 脚本。 (sh_binary 是一个不恰当的名称:其输出不一定是二进制文件。)此规则可以确保 确保所有依赖项均已构建,并在执行时显示在 runfiles 区域中。 我们建议您在命名 sh_binary() 规则时遵循脚本名称减号 扩展名(例如 .sh);规则名称和文件名必须不同。 sh_binary尊重外语者,因此可以使用任何合适的口译员(例如 #!/bin/zsh)

示例

对于没有依赖项和一些数据文件的简单 Shell 脚本:

sh_binary(
    name = "foo",
    srcs = ["foo.sh"],
    data = glob(["datafiles/*.txt"]),
)

参数

属性
name

姓名;必需

此目标的唯一名称。

deps

标签列表;默认值为 []

“库”列表目标汇总到此定位条件中。 查看关于 deps 的一般评论 大多数构建规则

此属性应该用于列出其他sh_library规则, srcs 中的代码所依赖的解释型程序源代码。文件 这些规则提供的将出现在此目标的 runfiles 中。

srcs

标签列表;必需

包含 Shell 脚本的文件。

此属性必须是单例列表,其元素是 Shell 脚本。 该脚本必须可执行,并且可以是源文件或生成的文件。 运行时所需的所有其他文件(无论是脚本还是数据)均位于 data 属性。

sh_library

<ph type="x-smartling-placeholder"></ph> 查看规则来源
sh_library(name, deps, srcs, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)

此规则的主要用途是将一个逻辑 “库”都由相关的脚本组成 无需编译或链接的解释型语言, 例如 Bourne shell,以及这些程序在 运行时。此类“图书馆”然后便可从 一个或data 另外 条sh_binary规则。

您可以使用 filegroup 规则汇总数据 文件。

在解释型编程语言中,有时 “代码”和和“data”:毕竟,程序是 仅使用“data”进行翻译。因此 此规则有三个本质上等效的属性: srcsdepsdata。 当前的实现方式不区分这些列表中的元素。 这三个属性都接受规则、源文件和生成的文件。 不过,最好将这些属性用于其常规用途(如同其他规则一样)。

示例

sh_library(
    name = "foo",
    data = [
        ":foo_service_script",  # an sh_binary with srcs
        ":deploy_foo",  # another sh_binary with srcs
    ],
)

参数

属性
name

姓名;必需

此目标的唯一名称。

deps

标签列表;默认值为 []

“库”列表目标汇总到此定位条件中。 查看关于 deps 的一般评论 大多数构建规则

此属性应该用于列出其他sh_library规则, srcs 中的代码所依赖的解释型程序源代码。文件 这些规则提供的将出现在此目标的 runfiles 中。

srcs

标签列表;默认值为 []

输入文件列表。

此属性应该用于列出属于 这个库中。脚本可以使用 shell 的 source 加载其他脚本 或 . 命令。

sh_test

<ph type="x-smartling-placeholder"></ph> 查看规则来源
sh_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)

sh_test() 规则会创建一个以 Bourne shell 脚本形式编写的测试。

请参阅 所有测试规则通用的属性 (*_test)

示例

sh_test(
    name = "foo_integration_test",
    size = "small",
    srcs = ["foo_integration_test.sh"],
    deps = [":foo_sh_lib"],
    data = glob(["testdata/*.txt"]),
)

参数

属性
name

姓名;必需

此目标的唯一名称。

deps

标签列表;默认值为 []

“库”列表目标汇总到此定位条件中。 查看关于 deps 的一般评论 大多数构建规则

此属性应该用于列出其他sh_library规则, srcs 中的代码所依赖的解释型程序源代码。文件 这些规则提供的将出现在此目标的 runfiles 中。

srcs

标签列表;必需

包含 Shell 脚本的文件。

此属性必须是单例列表,其元素是 Shell 脚本。 该脚本必须可执行,并且可以是源文件或生成的文件。 运行时所需的所有其他文件(无论是脚本还是数据)均位于 data 属性。