Правила
sh_binary
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)
Правило sh_binary используется для объявления исполняемых скриптов оболочки. (sh_binary — неудачное название: его выходные данные не обязательно являются бинарными файлами.) Это правило гарантирует, что все зависимости будут построены и появятся в области runfiles во время выполнения. Рекомендуется называть ваши правила sh_binary() по имени скрипта без расширения (например, .sh); имя правила и имя файла должны быть разными. sh_binary учитывает shebang, поэтому можно использовать любой доступный интерпретатор (например, #!/bin/zsh)
Пример
Для простого скрипта оболочки без зависимостей и некоторых файлах данных:
sh_binary(
name = "foo",
srcs = ["foo.sh"],
data = glob(["datafiles/*.txt"]),
)
Аргументы
| Атрибуты | |
|---|---|
name | Имя; обязательно Уникальное имя для этого целевого объекта. |
deps | Список меток; по умолчанию deps по адресу Типичные атрибуты, определенные большинством правил сборки. Этот атрибут должен использоваться для перечисления других правил |
srcs | Список меток; по умолчанию Этот атрибут должен использоваться для перечисления исходных файлов скриптов оболочки, принадлежащих к этой библиотеке. Скрипты могут загружать другие скрипты с помощью команд оболочки |
env_inherit | Список строк; по умолчанию |
sh_library
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)
Основное использование этого правила — агрегирование логической "библиотеки", состоящей из связанных скриптов — программ на интерпретируемом языке, не требующих компиляции или компоновки, например, оболочки Bourne — и любых данных, необходимых этим программам во время выполнения. Такие "библиотеки" затем можно использовать из атрибута data одного или нескольких правил sh_binary.
Вы можете использовать правило filegroup для агрегирования файлов данных.
В интерпретируемых языках программирования не всегда существует четкое различие между "кодом" и "данными": в конце концов, программа — это просто "данные" с точки зрения интерпретатора. По этой причине это правило имеет три атрибута, которые по существу эквивалентны: 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 | Список меток; по умолчанию Этот атрибут должен использоваться для перечисления исходных файлов скриптов оболочки, принадлежащих к этой библиотеке. Скрипты могут загружать другие скрипты с помощью команд оболочки |
sh_test
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)
Правило sh_binary используется для объявления исполняемых скриптов оболочки. (sh_binary — неудачное название: его выходные данные не обязательно являются бинарными файлами.) Это правило гарантирует, что все зависимости будут построены и появятся в области runfiles во время выполнения. Рекомендуется называть ваши правила sh_binary() по имени скрипта без расширения (например, .sh); имя правила и имя файла должны быть разными. sh_binary учитывает shebang, поэтому можно использовать любой доступный интерпретатор (например, #!/bin/zsh)
Пример
Для простого скрипта оболочки без зависимостей и некоторых файлах данных:
sh_binary(
name = "foo",
srcs = ["foo.sh"],
data = glob(["datafiles/*.txt"]),
)
Аргументы
| Атрибуты | |
|---|---|
name | Имя; обязательно Уникальное имя для этого целевого объекта. |
deps | Список меток; по умолчанию deps по адресу Типичные атрибуты, определенные большинством правил сборки. Этот атрибут должен использоваться для перечисления других правил |
srcs | Список меток; по умолчанию Этот атрибут должен использоваться для перечисления исходных файлов скриптов оболочки, принадлежащих к этой библиотеке. Скрипты могут загружать другие скрипты с помощью команд оболочки |