Reglas
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)
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 |
Un nombre único para este destino. |
deps
|
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
|
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
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)
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 |
Un nombre único para este destino. |
deps
|
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
|
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
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)
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 |
Un nombre único para este destino. |
deps
|
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
|
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 |