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 inapropiado, ya que sus resultados no son necesariamente objetos binarios). Esta regla garantiza que se compilen todas las dependencias y aparezcan en el área runfiles
al momento de la ejecución.
Te recomendamos que les asignes un nombre a las reglas sh_binary()
según el nombre de la secuencia de comandos menos la extensión (p.ej., .sh
); el nombre de la regla y el nombre del archivo deben ser distintos.
sh_binary
respeta las reglas y determina que se pueda 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 debe usarse para enumerar otras reglas de |
srcs
|
Este atributo debe ser una lista singleton, cuyo elemento es la secuencia de comandos shell.
Esta secuencia de comandos debe ser ejecutable y puede ser un archivo fuente o generado.
Todos los demás archivos necesarios en el entorno de ejecución (ya sean secuencias de comandos o datos) pertenecen al 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)
Su uso principal 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 Bourne) y cualquier dato que esos programas necesiten en el tiempo de ejecución. Estas "bibliotecas" se pueden usar 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 son básicamente 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, es recomendable 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 |
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 debe usarse 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 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)
Una regla sh_test()
crea una prueba escrita como una secuencia de comandos de shell Bourne.
Consulta los 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 debe usarse para enumerar otras reglas de |
srcs
|
Este atributo debe ser una lista singleton, cuyo elemento es la secuencia de comandos shell.
Esta secuencia de comandos debe ser ejecutable y puede ser un archivo fuente o generado.
Todos los demás archivos necesarios en el entorno de ejecución (ya sean secuencias de comandos o datos) pertenecen al atributo |