Reglas
sh_binary
Ver el código fuente de la reglash_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)
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 objetos binarios). Esta regla garantiza
que se compilen todas las dependencias y aparezcan en el área runfiles
en el momento de la ejecución.
Te recomendamos que asignes un nombre a las reglas sh_binary()
después del nombre de la secuencia de comandos menos
la extensión (p.ej., .sh
) el nombre de la regla y el del archivo deben ser distintos.
sh_binary
respeta las voces, 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:
sh_binary( name = "foo", srcs = ["foo.sh"], data = glob(["datafiles/*.txt"]), )
Argumentos
Atributos | |
---|---|
name |
Nombre: obligatorio. Un nombre único para este destino. |
deps
|
Lista de etiquetas; el valor predeterminado es 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 de |
srcs
|
Lista de etiquetas; obligatorio. El archivo que contiene la secuencia de comandos de shell.
Este atributo debe ser una lista singleton, cuyo elemento sea la secuencia de comandos de shell.
Esta secuencia de comandos debe ser ejecutable y puede ser un archivo de origen o un archivo generado.
Todos los demás archivos requeridos en el entorno de ejecución (ya sean secuencias de comandos o datos) deben
atributo |
sh_library
Ver el código fuente de la reglash_library(name, deps, srcs, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)
El uso principal de esta regla es agregar una lógica
"biblioteca" compuestos de scripts relacionados, programas en un
lenguaje interpretado que no requiere compilación ni vinculación,
como el shell de Bourne, y cualquier dato que esos programas necesiten en
durante el tiempo de ejecución. Estas "bibliotecas" se pueden usar desde
el atributo data
de uno o
más sh_binary
reglas.
Puedes usar la regla filegroup
para agregar datos
archivos.
En los lenguajes de programación interpretados, no siempre hay una
distinción 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 son equivalentes en esencia:
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 el propósito habitual (como en el caso de 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 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 de |
srcs
|
Lista de etiquetas; el valor predeterminado es
Este atributo se debe usar 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 mediante el |
sh_test
Ver el código fuente de la reglash_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)
Una regla sh_test()
crea una prueba escrita como una secuencia de comandos de shell de Bourne.
Consulta el atributos comunes a todas las reglas de prueba (*_test).
Ejemplos
sh_test( name = "foo_integration_test", size = "small", srcs = ["foo_integration_test.sh"], deps = [":foo_sh_lib"], data = glob(["testdata/*.txt"]), )
Argumentos
Atributos | |
---|---|
name |
Nombre: obligatorio. Un nombre único para este destino. |
deps
|
Lista de etiquetas; el valor predeterminado es 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 de |
srcs
|
Lista de etiquetas; obligatorio. El archivo que contiene la secuencia de comandos de shell.
Este atributo debe ser una lista singleton, cuyo elemento sea la secuencia de comandos de shell.
Esta secuencia de comandos debe ser ejecutable y puede ser un archivo de origen o un archivo generado.
Todos los demás archivos requeridos en el entorno de ejecución (ya sean secuencias de comandos o datos) deben
atributo |