Es el contexto de la regla del repositorio que contiene funciones auxiliares e información sobre los atributos. Obtienes un objeto repository_ctx como argumento para la función implementation
cuando creas una regla de repositorio.
Miembros
- attr
- borrar
- descargar
- download_and_extract
- ejecutar
- extract
- archivo
- getenv
- name
- os
- patch
- path
- leer
- report_progress
- vínculo simbólico
- plantilla
- reloj
- watch_tree
- que
- workspace_root
attr
struct repository_ctx.attr
borrar
bool repository_ctx.delete(path)
Parámetros
Parámetro | Descripción |
---|---|
path
|
cadena o ruta de acceso;
obligatorio Ruta de acceso del archivo que se borrará, relativa al directorio del repositorio o absoluta. Puede ser una ruta de acceso o una cadena. |
descargar
unknown repository_ctx.download(url, output='', sha256='', executable=False, allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', block=True)
success
, una marca que es true
si la descarga se completó correctamente y, si se completó correctamente, un hash del archivo con los campos sha256
y integrity
. Cuando el usuario especifica sha256
o integrity
, se recomienda establecer un canonical_id
explícito. p.ej., get_default_canonical_id
Parámetros
Parámetro | Descripción |
---|---|
url
|
cadena o iterable de cadenas; obligatorio Es una lista de URLs duplicadas que hacen referencia al mismo archivo. |
output
|
cadena, Label o ruta de acceso;
el valor predeterminado es '' ruta de acceso al archivo de salida, relativa al directorio del repositorio. |
sha256
|
El valor predeterminado es '' . Es el hash SHA-256 esperado del archivo descargado. Debe coincidir con el hash SHA-256 del archivo descargado. Omitir el SHA-256 es un riesgo de seguridad, ya que los archivos remotos pueden cambiar. En el mejor de los casos, si omites este campo, tu compilación no será hermética. Es opcional para facilitar el desarrollo, pero se debe configurar antes del envío. Si se proporciona, primero se verificará la caché del repositorio para ver si hay un archivo con el hash determinado. Solo se intentará una descarga si no se encuentra el archivo en la caché. Después de una descarga exitosa, el archivo se agregará a la caché. |
executable
|
El valor predeterminado es False . Establece la marca de ejecución en el archivo creado. El valor predeterminado es falso. |
allow_fail
|
El valor predeterminado es False . Si se configura, indica el error en el valor de devolución en lugar de generar un error por las descargas fallidas. |
canonical_id
|
El valor predeterminado es '' . Si se configura, restringe los aciertos de caché a aquellos casos en los que el archivo se agregó a la caché con el mismo ID canónico. De forma predeterminada, el almacenamiento en caché usa la suma de verificación ( sha256 o integrity ).
|
auth
|
El valor predeterminado es {} . Es un diccionario opcional que especifica información de autenticación para algunas de las URLs. |
headers
|
El valor predeterminado es {} . Es un diccionario opcional que especifica encabezados HTTP para todas las URLs. |
integrity
|
El valor predeterminado es '' . Es la suma de comprobación esperada del archivo descargado, en formato de Subresource Integrity. Debe coincidir con la suma de verificación del archivo descargado. Omitir la suma de verificación es un riesgo de seguridad, ya que los archivos remotos pueden cambiar. En el mejor de los casos, si omites este campo, tu compilación no será hermética. Es opcional para facilitar el desarrollo, pero se debe configurar antes del envío. Si se proporciona, primero se verificará la caché del repositorio para ver si hay un archivo con la suma de verificación determinada. Solo se intentará una descarga si no se encuentra el archivo en la caché. Después de una descarga exitosa, el archivo se agregará a la caché. |
block
|
El valor predeterminado es True . Si se establece en falso, la llamada se devuelve de inmediato y, en lugar del valor de devolución habitual, devuelve un token con un solo método, wait(), que se bloquea hasta que finaliza la descarga y devuelve el valor de devolución habitual o arroja una excepción como de costumbre. |
download_and_extract
struct repository_ctx.download_and_extract(url, output='', sha256='', type='', stripPrefix='', allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', rename_files={})
success
, una marca que es true
si la descarga se completó correctamente y, si se completó correctamente, un hash del archivo con los campos sha256
y integrity
. Cuando el usuario especifica sha256
o integrity
, se recomienda establecer un canonical_id
explícito. p.ej., get_default_canonical_id
Parámetros
Parámetro | Descripción |
---|---|
url
|
cadena o iterable de cadenas; obligatorio Es una lista de URLs duplicadas que hacen referencia al mismo archivo. |
output
|
cadena, Label o ruta de acceso; el valor predeterminado es '' Ruta de acceso al directorio en el que se descomprimirá el archivo, relativa al directorio del repositorio. |
sha256
|
El valor predeterminado es '' . Es el hash SHA-256 esperado del archivo descargado. Debe coincidir con el hash SHA-256 del archivo descargado. Omitir el SHA-256 es un riesgo de seguridad, ya que los archivos remotos pueden cambiar. En el mejor de los casos, si omites este campo, tu compilación no será hermética. Es opcional para facilitar el desarrollo, pero se debe configurar antes del envío. Si se proporciona, primero se verificará la caché del repositorio para ver si hay un archivo con el hash determinado. Solo se intentará una descarga si no se encuentra el archivo en la caché. Después de una descarga exitosa, el archivo se agregará a la caché. |
type
|
El valor predeterminado es '' . Es el tipo de archivo del archivo descargado. De forma predeterminada, el tipo de archivo se determina a partir de la extensión del archivo de la URL. Si el archivo no tiene extensión, puedes especificar explícitamente "zip", "jar", "war", "aar", "nupkg", "tar", "tar.gz", "tgz", "tar.xz", "txz", ".tar.zst", ".tzst", "tar.bz2", ".tbz", ".ar" o ".deb" aquí. |
stripPrefix
|
El valor predeterminado es '' . Es un prefijo de directorio que se quitará de los archivos extraídos. Muchos archivos contienen un directorio de nivel superior que incluye todos los archivos del archivo. En lugar de tener que especificar este prefijo una y otra vez en el build_file , este campo se puede usar para quitarlo de los archivos extraídos.
|
allow_fail
|
El valor predeterminado es False . Si se configura, indica el error en el valor de devolución en lugar de generar un error por las descargas fallidas. |
canonical_id
|
El valor predeterminado es '' . Si se configura, restringe los aciertos de caché a aquellos casos en los que el archivo se agregó a la caché con el mismo ID canónico. De forma predeterminada, el almacenamiento en caché usa la suma de verificación ( sha256 o integrity ).
|
auth
|
El valor predeterminado es {} . Es un diccionario opcional que especifica información de autenticación para algunas de las URLs. |
headers
|
El valor predeterminado es {} . Es un diccionario opcional que especifica encabezados HTTP para todas las URLs. |
integrity
|
El valor predeterminado es '' . Es la suma de comprobación esperada del archivo descargado, en formato de Subresource Integrity. Debe coincidir con la suma de verificación del archivo descargado. Omitir la suma de verificación es un riesgo de seguridad, ya que los archivos remotos pueden cambiar. En el mejor de los casos, si omites este campo, tu compilación no será hermética. Es opcional para facilitar el desarrollo, pero se debe configurar antes del envío. Si se proporciona, primero se verificará la caché del repositorio para ver si hay un archivo con la suma de verificación determinada. Solo se intentará una descarga si no se encuentra el archivo en la caché. Después de una descarga exitosa, el archivo se agregará a la caché. |
rename_files
|
El valor predeterminado es {} . Es un diccionario opcional que especifica los archivos a los que se les cambiará el nombre durante la extracción. Las entradas del archivo con nombres que coincidan exactamente con una clave se cambiarán al valor antes de cualquier ajuste del prefijo del directorio. Se puede usar para extraer archivos que contienen nombres de archivo no Unicode o que tienen archivos que se extraerían en la misma ruta de acceso en sistemas de archivos que no distinguen mayúsculas de minúsculas. |
ejecutar
exec_result repository_ctx.execute(arguments, timeout=600, environment={}, quiet=True, working_directory="")
timeout
(en segundos, 600 segundos de forma predeterminada). Este método devuelve una estructura exec_result
que contiene el resultado del comando. El mapa environment
se puede usar para anular algunas variables de entorno que se pasarán al proceso.
Parámetros
Parámetro | Descripción |
---|---|
arguments
|
obligatorio Lista de argumentos. El primer elemento debe ser la ruta de acceso al programa que se ejecutará. |
timeout
|
El valor predeterminado es 600 . Duración máxima del comando en segundos (el valor predeterminado es de 600 segundos). |
environment
|
El valor predeterminado es {} . Fuerza la configuración de algunas variables de entorno para que se pasen al proceso. |
quiet
|
El valor predeterminado es True . Indica si se deben imprimir stdout y stderr en la terminal. |
working_directory
|
El valor predeterminado es "" . Directorio de trabajo para la ejecución de comandos. Puede ser relativa a la raíz del repositorio o absoluta. La raíz del repositorio es la ubicación predeterminada. |
extract
None
repository_ctx.extract(archive, output='', stripPrefix='', *, rename_files={}, watch_archive='auto')
Parámetros
Parámetro | Descripción |
---|---|
archive
|
cadena, Label o ruta de acceso;
obligatorio ruta de acceso al archivo que se descomprimirá, relativa al directorio del repositorio. |
output
|
cadena, Label o ruta de acceso; el valor predeterminado es '' ruta de acceso al directorio en el que se descomprimirá el archivo, relativa al directorio del repositorio. |
stripPrefix
|
El valor predeterminado es '' , un prefijo de directorio que se quitará de los archivos extraídos. Muchos archivos contienen un directorio de nivel superior que incluye todos los archivos del archivo. En lugar de tener que especificar este prefijo una y otra vez en el build_file , este campo se puede usar para quitarlo de los archivos extraídos.
|
rename_files
|
El valor predeterminado es {} . Es un diccionario opcional que especifica los archivos a los que se les cambiará el nombre durante la extracción. Las entradas del archivo con nombres que coincidan exactamente con una clave se cambiarán al valor antes de cualquier ajuste del prefijo del directorio. Se puede usar para extraer archivos que contienen nombres de archivo no Unicode o que tienen archivos que se extraerían en la misma ruta de acceso en sistemas de archivos que no distinguen mayúsculas de minúsculas. |
watch_archive
|
El valor predeterminado es 'auto' , que indica si se debe observar el archivo. Puede ser la cadena "yes", "no" o "auto". Si se pasa "yes", es equivalente a invocar de inmediato el método watch() . Si se pasa "no", no se intenta observar el archivo. Si se pasa "auto", solo se intentará observar el archivo cuando sea legal hacerlo (consulta la documentación de watch() para obtener más información).
|
archivo
None
repository_ctx.file(path, content='', executable=True, legacy_utf8=True)
Parámetros
Parámetro | Descripción |
---|---|
path
|
cadena, Label o ruta de acceso;
obligatorio Ruta de acceso del archivo que se creará, relativa al directorio del repositorio. |
content
|
El valor predeterminado es '' . Es el contenido del archivo que se creará. De forma predeterminada, está vacío. |
executable
|
El valor predeterminado es True . Establece la marca de ejecución en el archivo creado, que es verdadera de forma predeterminada. |
legacy_utf8
|
El valor predeterminado es True . Codifica el contenido del archivo en UTF-8. El valor predeterminado es verdadero. Las próximas versiones cambiarán el valor predeterminado y quitarán este parámetro. |
getenv
string repository_ctx.getenv(name, default=None)
name
como una cadena si existe, o default
si no existe. Cuando se compila de forma incremental, cualquier cambio en el valor de la variable denominada por name
hará que se vuelva a recuperar este repositorio.
Parámetros
Parámetro | Descripción |
---|---|
name
|
cadena;
obligatorio Nombre de la variable de entorno deseada. |
default
|
cadena o None ;
El valor predeterminado es None Valor predeterminado que se devolverá si no se encuentra name .
|
None
.
nombre
string repository_ctx.name
os
repository_os repository_ctx.os
patch
None
repository_ctx.patch(patch_file, strip=0, *, watch_patch='auto')
Parámetros
Parámetro | Descripción |
---|---|
patch_file
|
string, Label o path;
obligatorio Es el archivo de parche que se aplicará. Puede ser una etiqueta, una ruta de acceso relativa o una ruta de acceso absoluta. Si es una ruta de acceso relativa, se resolverá en el directorio del repositorio. |
strip
|
El valor predeterminado es 0 . Quita la cantidad especificada de componentes iniciales de los nombres de archivo. |
watch_patch
|
El valor predeterminado es 'auto' . Indica si se debe observar el archivo de parche. Puede ser la cadena "yes", "no" o "auto". Si se pasa "yes", es equivalente a invocar de inmediato el método watch() . Si se pasa "no", no se intenta observar el archivo. Si se pasa "auto", solo se intentará observar el archivo cuando sea legal hacerlo (consulta la documentación de watch() para obtener más información).
|
ruta de acceso
path repository_ctx.path(path)
Parámetros
Parámetro | Descripción |
---|---|
path
|
cadena, etiqueta o ruta de acceso;
obligatoriostring , Label o path desde el cual se creará una ruta de acceso.
|
read
string repository_ctx.read(path, *, watch='auto')
Parámetros
Parámetro | Descripción |
---|---|
path
|
cadena, Label o ruta de acceso;
obligatorio Ruta de acceso del archivo desde el que se leerá. |
watch
|
El valor predeterminado es 'auto' . Indica si se debe observar el archivo. Puede ser la cadena "yes", "no" o "auto". Si se pasa "yes", es equivalente a invocar de inmediato el método watch() . Si se pasa "no", no se intenta observar el archivo. Si se pasa "auto", solo se intentará observar el archivo cuando sea legal hacerlo (consulta la documentación de watch() para obtener más información).
|
report_progress
None
repository_ctx.report_progress(status='')
Parámetros
Parámetro | Descripción |
---|---|
status
|
string;
el valor predeterminado es '' string que describe el estado actual del progreso de la recuperación.
|
symlink
None
repository_ctx.symlink(target, link_name)
Parámetros
Parámetro | Descripción |
---|---|
target
|
cadena, etiqueta o ruta de acceso; obligatorio Ruta de acceso a la que debe apuntar el vínculo simbólico. |
link_name
|
string, Label o path;
obligatorio Es la ruta de acceso del vínculo simbólico que se creará. |
plantilla
None
repository_ctx.template(path, template, substitutions={}, executable=True, *, watch_template='auto')
template
. Cada ocurrencia en template
de una clave de substitutions
se reemplazará por el valor correspondiente. El resultado se escribe en path
. Se puede establecer un argumento executable
opcional (el valor predeterminado es verdadero) para activar o desactivar el bit ejecutable.
Parámetros
Parámetro | Descripción |
---|---|
path
|
cadena, Label o ruta de acceso;
obligatorio Ruta de acceso del archivo que se creará, relativa al directorio del repositorio. |
template
|
cadena, etiqueta o ruta de acceso;
obligatorio Ruta de acceso al archivo de plantilla. |
substitutions
|
El valor predeterminado es {} . Son las sustituciones que se deben realizar cuando se expande la plantilla. |
executable
|
El valor predeterminado es True . Establece la marca de ejecución en el archivo creado, que es verdadera de forma predeterminada. |
watch_template
|
El valor predeterminado es 'auto' . Indica si se debe observar el archivo de plantilla. Puede ser la cadena "yes", "no" o "auto". Si se pasa "yes", es equivalente a invocar de inmediato el método watch() . Si se pasa "no", no se intenta observar el archivo. Si se pasa "auto", solo se intentará observar el archivo cuando sea legal hacerlo (consulta la documentación de watch() para obtener más información).
|
reloj
None
repository_ctx.watch(path)
Los "cambios" incluyen los cambios en el contenido del archivo (si la ruta es un archivo), si la ruta era un archivo, pero ahora es un directorio, o viceversa, y si la ruta comienza o deja de existir. En particular, esto no incluye los cambios en los archivos del directorio si la ruta de acceso es un directorio. Para ello, usa path.readdir()
.
Ten en cuenta que intentar observar rutas dentro del repo que se está recuperando o dentro del directorio de trabajo de la extensión del módulo actual generará un error. Una extensión de módulo que intente observar una ruta fuera del espacio de trabajo actual de Bazel también generará un error.
Parámetros
Parámetro | Descripción |
---|---|
path
|
cadena, Label o ruta de acceso;
obligatorio Ruta de acceso del archivo que se supervisará. |
watch_tree
None
repository_ctx.watch_tree(path)
Ten en cuenta que, si intentas observar rutas de acceso dentro del repo que se está recuperando, se generará un error.
Parámetros
Parámetro | Descripción |
---|---|
path
|
cadena, Label o ruta de acceso;
obligatorio Ruta de acceso del árbol de directorios que se supervisará. |
cuál
path repository_ctx.which(program)
path
del programa correspondiente o None
si no hay tal programa en la ruta de acceso.
Parámetros
Parámetro | Descripción |
---|---|
program
|
obligatorio Programa que se buscará en la ruta de acceso. |
None
.
workspace_root
path repository_ctx.workspace_root