Reglas
sh_binary
Ver la fuente de la reglash_binary(name, deps, srcs, data, args, compatible_with, deprecation, env, env_inherit, exec_compatible_with, exec_group_compatible_with, exec_properties, features, output_licenses, package_metadata, 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 se compilen todas las dependencias y que aparezcan en el área runfiles
en el tiempo de ejecución.
Te recomendamos que nombres tus reglas de sh_binary()
según el 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 un simple script de shell 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) Es 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 fuente de secuencias de comandos de shell que pertenecen a esta biblioteca. Las secuencias de comandos pueden cargar otras secuencias de comandos con los comandos |
env_inherit
|
Lista de cadenas; el valor predeterminado es |
sh_library
Ver la fuente de la reglash_library(name, deps, srcs, data, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, package_metadata, 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 Bourne shell) y los datos que esos programas necesitan en el tiempo de ejecución. Luego, esas "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 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) Es 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 fuente de secuencias de comandos de shell que pertenecen a esta biblioteca. Las secuencias de comandos pueden cargar otras secuencias de comandos con los comandos |
sh_test
Ver la fuente de la reglash_test(name, deps, srcs, data, args, compatible_with, deprecation, env, env_inherit, exec_compatible_with, exec_group_compatible_with, exec_properties, features, flaky, local, package_metadata, 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 inapropiado: sus resultados no son necesariamente binarios). Esta regla garantiza que se compilen todas las dependencias y que aparezcan en el área runfiles
en el tiempo de ejecución.
Te recomendamos que nombres tus reglas de sh_binary()
según el 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 un simple script de shell 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) Es 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 fuente de secuencias de comandos de shell que pertenecen a esta biblioteca. Las secuencias de comandos pueden cargar otras secuencias de comandos con los comandos |