规则
- <ph type="x-smartling-placeholder"></ph> sh_binary
- <ph type="x-smartling-placeholder"></ph> sh_library
- <ph type="x-smartling-placeholder"></ph> sh_test
sh_binary
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 的一般评论
大多数构建规则。
此属性应该用于列出其他 |
srcs
|
此属性必须是单例列表,其元素是 Shell 脚本。
该脚本必须可执行,并且可以是源文件或生成的文件。
运行时所需的所有其他文件(无论是脚本还是数据)均位于
|
sh_library
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”进行翻译。因此
此规则有三个本质上等效的属性:
srcs
、deps
和data
。
当前的实现方式不区分这些列表中的元素。
这三个属性都接受规则、源文件和生成的文件。
不过,最好将这些属性用于其常规用途(如同其他规则一样)。
示例
sh_library( name = "foo", data = [ ":foo_service_script", # an sh_binary with srcs ":deploy_foo", # another sh_binary with srcs ], )
参数
属性 | |
---|---|
name |
此目标的唯一名称。 |
deps
|
deps 的一般评论
大多数构建规则。
此属性应该用于列出其他 |
srcs
|
此属性应该用于列出属于
这个库中。脚本可以使用 shell 的 |
sh_test
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 的一般评论
大多数构建规则。
此属性应该用于列出其他 |
srcs
|
此属性必须是单例列表,其元素是 Shell 脚本。
该脚本必须可执行,并且可以是源文件或生成的文件。
运行时所需的所有其他文件(无论是脚本还是数据)均位于
|