Reglas de shell

7.3 · 7.2 · 7.1 · 7.0 · 6.5

Reglas

sh_binary

Ver la fuente de la regla
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)

La regla sh_binary se usa para declarar secuencias de comandos de shell ejecutables. (sh_binary es un nombre incorrecto: sus resultados no son necesariamente binarios). Esta regla garantiza que todas las dependencias se compilen y aparezcan en el área runfiles en el momento de la ejecución. Te recomendamos que nombres tus reglas sh_binary() después del nombre de la secuencia de comandos sin la extensión (p. ej., .sh). El nombre de la regla y el nombre del archivo deben ser distintos. sh_binary respeta los shebangs, por lo que se puede usar cualquier intérprete disponible (p. ej., #!/bin/zsh)

Ejemplo

Para una secuencia de comandos de shell simple sin dependencias y algunos archivos de datos, haz lo siguiente:

sh_binary(
    name = "foo",
    srcs = ["foo.sh"],
    data = glob(["datafiles/*.txt"]),
)

Argumentos

Atributos
name

Nombre: Obligatorio

Un nombre único para este destino.

deps

Es una lista de etiquetas. El valor predeterminado es [].

Es la lista de destinos de "biblioteca" que se agregarán a este destino. Consulta los comentarios generales sobre deps en Atributos típicos definidos por la mayoría de las reglas de compilación.

Este atributo se debe usar para enumerar otras reglas sh_library que proporcionan código fuente interpretado del programa del que depende el código en srcs. Los archivos que proporcionan estas reglas estarán presentes entre los runfiles de este destino.

srcs

Es una lista de etiquetas. El valor predeterminado es [].

Es la lista de archivos de entrada.

Este atributo debe usarse para enumerar los archivos de origen de la secuencia de comandos de shell que pertenecen a esta biblioteca. Las secuencias de comandos pueden cargar otras secuencias de comandos con el comando source o . de la shell.

env_inherit

Es una lista de cadenas. El valor predeterminado es [].

sh_library

Ver la fuente de la regla
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)

El uso principal de esta regla es agregar una “biblioteca” lógica que consta de secuencias de comandos relacionadas (programas en un lenguaje interpretado que no requiere compilación ni vinculación, como la shell de Bourne) y cualquier dato que esos programas necesiten en el tiempo de ejecución. Luego, se pueden usar esas "bibliotecas" desde el atributo data de una o más reglas sh_binary.

Puedes usar la regla filegroup para agregar archivos de datos.

En los lenguajes de programación interpretados, no siempre hay una distinción clara entre “código” y “datos”: después de todo, el programa es solo “datos” desde el punto de vista del intérprete. Por este motivo, esta regla tiene tres atributos que, en esencia, son equivalentes: srcs, deps y data. La implementación actual no distingue entre los elementos de estas listas. Los tres atributos aceptan reglas, archivos de origen y archivos generados. Sin embargo, se recomienda usar los atributos para su propósito habitual (como con otras reglas).

Ejemplos

sh_library(
    name = "foo",
    data = [
        ":foo_service_script",  # an sh_binary with srcs
        ":deploy_foo",  # another sh_binary with srcs
    ],
)

Argumentos

Atributos
name

Nombre: Obligatorio

Un nombre único para este destino.

deps

Lista de etiquetas; el valor predeterminado es []

Es la lista de destinos de "biblioteca" que se agregarán a este destino. Consulta los comentarios generales sobre deps en Atributos típicos definidos por la mayoría de las reglas de compilación.

Este atributo se debe usar para enumerar otras reglas sh_library que proporcionan código fuente interpretado del programa del que depende el código en srcs. Los archivos que proporcionan estas reglas estarán presentes entre los runfiles de este destino.

srcs

Es una lista de etiquetas. El valor predeterminado es [].

Es la lista de archivos de entrada.

Este atributo se debe usar para enumerar los archivos fuente de la secuencia de comandos de shell que pertenecen a esta biblioteca. Las secuencias de comandos pueden cargar otras secuencias de comandos con el comando source o . de la shell.

sh_test

Ver la fuente de la regla
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)

La regla sh_binary se usa para declarar secuencias de comandos de shell ejecutables. (sh_binary es un nombre incorrecto: sus resultados no son necesariamente binarios). Esta regla garantiza que todas las dependencias se compilen y aparezcan en el área runfiles en el momento de la ejecución. Te recomendamos que nombres tus reglas sh_binary() después del nombre de la secuencia de comandos sin la extensión (p. ej., .sh). El nombre de la regla y el nombre del archivo deben ser distintos. sh_binary respeta los shebangs, por lo que se puede usar cualquier intérprete disponible (p. ej., #!/bin/zsh)

Ejemplo

Para una secuencia de comandos de shell simple sin dependencias y algunos archivos de datos, haz lo siguiente:

sh_binary(
    name = "foo",
    srcs = ["foo.sh"],
    data = glob(["datafiles/*.txt"]),
)

Argumentos

Atributos
name

Name; obligatorio

Un nombre único para este destino.

deps

Es una lista de etiquetas. El valor predeterminado es [].

Es la lista de destinos de "biblioteca" que se agregarán a este objetivo. Consulta los comentarios generales sobre deps en Atributos típicos definidos por la mayoría de las reglas de compilación.

Este atributo se debe usar para enumerar otras reglas sh_library que proporcionan código fuente de programa interpretado del que depende el código en srcs. Los archivos que proporcionan estas reglas estarán presentes entre los runfiles de este destino.

srcs

Es una lista de etiquetas. El valor predeterminado es [].

Es la lista de archivos de entrada.

Este atributo se debe usar para enumerar los archivos fuente de la secuencia de comandos de shell que pertenecen a esta biblioteca. Las secuencias de comandos pueden cargar otras secuencias de comandos con el comando source o . de la shell.