Regras
sh_binary
Acessar a origem da regrash_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)
A regra sh_binary
é usada para declarar scripts shell executáveis.
(sh_binary
é um termo incorreto: as saídas dele não são necessariamente binários.) 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 os shebangs, então qualquer intérprete disponível pode ser usado (por exemplo,
#!/bin/zsh
)
Exemplo
Para um script de shell simples sem dependências e 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 precisa ser usado para listar outras regras |
srcs
|
Lista de rótulos; obrigatório O arquivo que contém o script de shell.
Esse atributo precisa ser uma lista Singleton, cujo elemento é o script de shell.
Esse script precisa ser executável e pode ser um arquivo de origem ou um arquivo gerado.
Todos os outros arquivos necessários no momento da execução (scripts ou dados) pertencem ao
atributo |
sh_library
Acessar a origem da regrash_library(name, deps, srcs, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)
O uso principal dessa regra é agregar uma
"biblioteca" lógica que consiste em scripts relacionados (programas em uma
linguagem interpretada que não requer compilação ou vinculação,
como o shell Bourne) e quaisquer dados necessários para esses programas no
tempo de execução. Essas "bibliotecas" podem ser usadas pelo
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 esse motivo,
essa regra tem três atributos que são essencialmente equivalentes:
srcs
, deps
e data
.
A implementação atual não distingue os elementos dessas listas.
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 precisa ser usado para listar outras regras |
srcs
|
Lista de rótulos; o padrão é
Esse atributo precisa ser usado para listar arquivos de origem de script de shell que pertencem a
essa biblioteca. Os scripts podem carregar outros scripts usando o comando |
sh_test
Acessar a origem da regrash_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)
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 precisa ser usado para listar outras regras |
srcs
|
Lista de rótulos; obrigatório O arquivo que contém o script de shell.
Esse atributo precisa ser uma lista Singleton, cujo elemento é o script de shell.
Esse script precisa ser executável e pode ser um arquivo de origem ou um arquivo gerado.
Todos os outros arquivos necessários no momento da execução (scripts ou dados) pertencem ao
atributo |