Regras
sh_binary
Ver origem da regrash_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)
A regra sh_binary é usada para declarar scripts de shell executáveis.
(sh_binary é um nome impróprio: as saídas dela 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 distintos.
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 esse destino. |
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 |
env_inherit
|
Lista de strings; o padrão é |
sh_library
Ver origem da regrash_library(name, deps, srcs, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, 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 de que esses programas precisam no
momento da execução. Essas "bibliotecas" podem ser usadas no
atributo data de uma ou
mais sh_binary regras.
Você pode usar a regra filegroup para agregar dados
arquivos.
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 entre os elementos dessas listas.
Todos os três atributos aceitam regras, arquivos de origem e arquivos gerados.
No entanto, é uma boa prática usar os atributos para a finalidade normal deles (como com 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 esse destino. |
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
Ver origem da regrash_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)
A regra sh_binary é usada para declarar scripts de shell executáveis.
(sh_binary é um nome impróprio: as saídas dela 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 distintos.
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 esse destino. |
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 |