Regras de shell

Regras

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)

A regra sh_binary é usada para declarar scripts de shell executáveis. sh_binary é um nome incorreto: as saídas 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 suas regras sh_binary() de acordo com o nome do script, com a menos A extensão (por exemplo, .sh); os nomes da regra e 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 de 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

Name; required

Um nome exclusivo para o destino.

deps

List of labels; optional

A lista de "library" sejam agregados a esse destino. Leia os comentários gerais sobre deps em Atributos típicos definidos pelo a maioria das regras de build.

Esse atributo deve ser usado para listar outras regras sh_library que fornecem interpretado o código-fonte do programa dependia do código em srcs. Os arquivos fornecidos por essas regras estarão presentes entre os runfiles desse destino.

srcs

List of labels; required

O arquivo que contém o script de shell.

Esse atributo precisa ser uma lista de singleton, com elemento que é 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 ambiente de execução (scripts ou dados) pertencem ao data.

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)

O principal uso dessa regra é agregar um conjunto "biblioteca" compostos por scripts relacionados, programas em um linguagem interpretada que não requer compilação ou links, como o shell Bourne, e todos os dados de que esses programas precisam no ambiente de execução. Essas "bibliotecas" que podem ser usadas o atributo data de um ou mais sh_binary regras.

Use a regra filegroup para agregar dados. .

Em linguagens de programação interpretadas, nem sempre há uma lógica distinção entre "código" e "data": 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 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 seus propósitos comuns (assim como acontece 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

Name; required

Um nome exclusivo para o destino.

deps

List of labels; optional

A lista de "library" sejam agregados a esse destino. Leia os comentários gerais sobre deps em Atributos típicos definidos pelo a maioria das regras de build.

Esse atributo deve ser usado para listar outras regras sh_library que fornecem interpretado o código-fonte do programa dependia do código em srcs. Os arquivos fornecidos por essas regras estarão presentes entre os runfiles desse destino.

srcs

List of labels; optional

A lista de arquivos de entrada.

Esse atributo deve ser usado para listar os arquivos de origem do script de shell que pertencem essa biblioteca. Os scripts podem carregar outros scripts usando o source do shell. ou o comando ..

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)

Uma regra sh_test() cria um teste escrito como um script de shell Bourne.

Consulte a 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

Name; required

Um nome exclusivo para o destino.

deps

List of labels; optional

A lista de "library" sejam agregados a esse destino. Leia os comentários gerais sobre deps em Atributos típicos definidos pelo a maioria das regras de build.

Esse atributo deve ser usado para listar outras regras sh_library que fornecem interpretado o código-fonte do programa dependia do código em srcs. Os arquivos fornecidos por essas regras estarão presentes entre os runfiles desse destino.

srcs

List of labels; required

O arquivo que contém o script de shell.

Esse atributo precisa ser uma lista de singleton, com elemento que é 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 ambiente de execução (scripts ou dados) pertencem ao data.