Reglas
sh_binary
Ver 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 inapropiado: 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() con 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 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
|
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 |
srcs
|
Lista de etiquetas; obligatorio El archivo que contiene la secuencia de comandos de shell.
Este atributo debe ser una lista singleton, cuyo elemento es la secuencia de comandos de shell.
Esta secuencia de comandos debe ser ejecutable y puede ser un archivo fuente o un archivo generado.
Todos los demás archivos necesarios en el tiempo de ejecución (ya sean secuencias de comandos o datos) pertenecen al
|
sh_library
Ver 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
"biblioteca" lógica que consta de secuencias de comandos relacionadas (programas en un
lenguaje interpretado que no requiere compilación ni vinculación,
como el shell de Bourne) y cualquier dato que necesiten esos programas en el
tiempo de ejecución. Luego, estas "bibliotecas" se pueden usar desde
el data atributo de una o
más sh_binary reglas.
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 esencialmente equivalentes:
srcs, deps y data.
La implementación actual no distingue entre los elementos de estas listas.
Los tres atributos aceptan reglas, archivos fuente 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 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 |
srcs
|
Lista de etiquetas; el valor predeterminado es
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 |
sh_test
Ver 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 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 |
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 |
srcs
|
Lista de etiquetas; obligatorio El archivo que contiene la secuencia de comandos de shell.
Este atributo debe ser una lista singleton, cuyo elemento es la secuencia de comandos de shell.
Esta secuencia de comandos debe ser ejecutable y puede ser un archivo fuente o un archivo generado.
Todos los demás archivos necesarios en el tiempo de ejecución (ya sean secuencias de comandos o datos) pertenecen al
|