Regras
sh_binary
Ver origem da regrash_binary(name, deps, srcs, data, args, aspect_hints, 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, use_bash_launcher, visibility)
A regra sh_binary é usada para declarar scripts de shell executáveis.
sh_binary é um nome inadequado: as saídas não são necessariamente binárias. Essa regra garante
que todas as dependências sejam criadas e apareçam na área runfiles no momento da execução.
Recomendamos que você nomeie as regras sh_binary() com o nome do script menos a extensão (por exemplo, .sh). O nome da regra e o nome do arquivo precisam ser diferentes.
O sh_binary respeita shebangs, então qualquer intérprete disponível pode ser usado (por exemplo,
#!/bin/zsh)
Exemplo
Para um script shell simples sem dependências e com alguns arquivos de dados:
sh_binary(
name = "foo",
srcs = ["foo.sh"],
data = glob(["datafiles/*.txt"]),
)
Argumentos
| Atributos | |
|---|---|
name |
Nome: obrigatório Um nome exclusivo para essa segmentação. |
deps
|
Lista de rótulos. O padrão é deps em Atributos típicos definidos pela maioria das regras de build.
Esse atributo deve ser usado para listar outras regras de |
srcs
|
Lista de rótulos. O padrão é
Esse atributo precisa ser uma lista singleton, cujo elemento é o script shell.
Ele precisa ser executável e pode ser um arquivo de origem ou gerado.
Todos os outros arquivos necessários no momento da execução (scripts ou dados) pertencem ao atributo
|
env_inherit
|
Lista de strings. O padrão é |
use_bash_launcher
|
Booleano; o padrão é |
sh_library
Ver origem da regrash_library(name, deps, srcs, data, aspect_hints, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, package_metadata, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
O principal uso dessa regra é agregar uma "biblioteca" lógica que consiste em scripts relacionados (programas em uma linguagem interpretada que não exige compilação ou vinculação, como o shell Bourne) e todos os dados necessários para esses programas em tempo de execução. Essas "bibliotecas" podem ser usadas no atributo data de uma ou mais regras sh_binary.
É possível usar a regra filegroup para agregar arquivos de dados.
Em linguagens de programação interpretadas, nem sempre há uma distinção clara entre "código" e "dados". Afinal, o programa é apenas "dados" do ponto de vista do intérprete. Por isso, essa regra tem três atributos que são essencialmente equivalentes: srcs, deps e data.
A implementação atual não faz distinção entre os elementos dessas listas.
Todos os três atributos aceitam regras, arquivos de origem e arquivos gerados.
No entanto, é recomendável usar os atributos para a finalidade usual (como em outras regras).
Exemplos
sh_library(
name = "foo",
data = [
":foo_service_script", # an sh_binary with srcs
":deploy_foo", # another sh_binary with srcs
],
)
Argumentos
| Atributos | |
|---|---|
name |
Nome: obrigatório Um nome exclusivo para essa segmentação. |
deps
|
Lista de rótulos. O padrão é deps em Atributos típicos definidos pela maioria das regras de build.
Esse atributo deve ser usado para listar outras regras de |
srcs
|
Lista de rótulos. O padrão é
Esse atributo deve ser usado para listar arquivos de origem de script shell que pertencem a
esta biblioteca. Os scripts podem carregar outros scripts usando o comando |
sh_test
Ver origem da regrash_test(name, deps, srcs, data, args, aspect_hints, 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, use_bash_launcher, visibility)
Uma regra sh_test() cria um teste escrito como um script de shell Bourne.
Consulte os atributos comuns a todas as regras de teste (*_test).
Exemplos
sh_test(
name = "foo_integration_test",
size = "small",
srcs = ["foo_integration_test.sh"],
deps = [":foo_sh_lib"],
data = glob(["testdata/*.txt"]),
)
Argumentos
| Atributos | |
|---|---|
name |
Nome: obrigatório Um nome exclusivo para essa segmentação. |
deps
|
Lista de rótulos. O padrão é deps em Atributos típicos definidos pela maioria das regras de build.
Esse atributo deve ser usado para listar outras regras de |
srcs
|
Lista de rótulos. O padrão é
Esse atributo precisa ser uma lista singleton, cujo elemento é o script shell.
Ele precisa ser executável e pode ser um arquivo de origem ou gerado.
Todos os outros arquivos necessários no momento da execução (scripts ou dados) pertencem ao atributo
|
use_bash_launcher
|
Booleano; o padrão é |