Es el contexto de la regla del repositorio que contiene funciones auxiliares y datos sobre los atributos. Obtienes un objeto repository_ctx como argumento de 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
- cambiar nombre
- report_progress
- symlink
- plantilla
- watch
- watch_tree
- que
- workspace_root
attr
struct repository_ctx.attrEs una estructura para acceder a los valores de los atributos. El usuario proporciona los valores (de lo contrario, se usa un valor predeterminado).
delete
bool repository_ctx.delete(path)Borra un archivo o un directorio. Muestra un valor booleano que indica si esta llamada borró el archivo o directorio.
Parámetros
Parámetro | Descripción |
---|---|
path
|
cadena o ruta;
obligatorio Es la ruta de acceso del archivo que se borrará, en relación con el 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)Descarga un archivo en la ruta de acceso de salida de la URL proporcionada y muestra una estructura que contiene
success
, una marca que es true
si la descarga se completó correctamente y, si es así, un hash del archivo con los campos sha256
y integrity
. Cuando el usuario especifica sha256
o integrity
, se recomienda configurar 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 de espejo que hacen referencia al mismo archivo. |
output
|
cadena, etiqueta o ruta;
el valor predeterminado es '' ruta de acceso al archivo de salida, en relación con el directorio del repositorio. |
sha256
|
cadena;
el valor predeterminado es '' Es el hash SHA-256 esperado del archivo descargado. Debe coincidir con el hash SHA-256 del archivo descargado. Omitir SHA-256 es un riesgo de seguridad, ya que los archivos remotos pueden cambiar. En el mejor de los casos, omitir este campo hará que tu compilación no sea hermética. Es opcional para facilitar el desarrollo, pero debe configurarse antes del envío. Si se proporciona, primero se verificará la caché del repositorio en busca de 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 correcta, el archivo se agregará a la caché. |
executable
|
bool;
El valor predeterminado es False Establece la marca ejecutable en el archivo creado, que es falsa de forma predeterminada. |
allow_fail
|
bool;
El valor predeterminado es False Si se establece, indica el error en el valor que se muestra en lugar de generar un error para las descargas fallidas. |
canonical_id
|
cadena;
el valor predeterminado es '' Si se establece, restringe los aciertos de caché a los 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 comprobación ( sha256 o integrity ).
|
auth
|
dict;
El valor predeterminado es {} . Es un diccionario opcional que especifica información de autenticación para algunas de las URLs. |
headers
|
dict;
El valor predeterminado es {} Es un diccionario opcional que especifica encabezados HTTP para todas las URLs. |
integrity
|
cadena;
el valor predeterminado es '' Es la suma de comprobación esperada del archivo descargado, en formato de integridad de subrecursos. Debe coincidir con la suma de comprobación del archivo descargado. Omitir la suma de comprobación es un riesgo de seguridad, ya que los archivos remotos pueden cambiar. En el mejor de los casos, omitir este campo hará que tu compilación no sea hermética. Es opcional para facilitar el desarrollo, pero debe configurarse antes del envío. Si se proporciona, primero se verificará la caché del repositorio en busca de un archivo con la suma de comprobación determinada. Solo se intentará una descarga si no se encuentra el archivo en la caché. Después de una descarga correcta, el archivo se agregará a la caché. |
block
|
bool;
El valor predeterminado es True Si se establece en "false", la llamada se muestra de inmediato y, en lugar del valor normal, muestra un token con un solo método, wait(), que se bloquea hasta que finaliza la descarga y muestra el valor normal o arroja como de costumbre. |
download_and_extract
struct repository_ctx.download_and_extract(url, output='', sha256='', type='', strip_prefix='', allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', rename_files={})Descarga un archivo en la ruta de acceso de salida de la URL proporcionada, lo extrae y muestra una estructura que contiene
success
, una marca que es true
si la descarga se completó correctamente y, si es así, un hash del archivo con los campos sha256
y integrity
. Cuando el usuario especifica sha256
o integrity
, se recomienda configurar 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 de espejo que hacen referencia al mismo archivo. |
output
|
cadena, etiqueta o ruta;
El valor predeterminado es '' Es la ruta de acceso al directorio en el que se descomprimirá el archivo, en relación con el directorio del repositorio. |
sha256
|
cadena;
el valor predeterminado es '' Es el hash SHA-256 esperado del archivo descargado. Debe coincidir con el hash SHA-256 del archivo descargado. Omitir SHA-256 es un riesgo de seguridad, ya que los archivos remotos pueden cambiar. En el mejor de los casos, omitir este campo hará que tu compilación no sea hermética. Es opcional para facilitar el desarrollo, pero debe configurarse antes del envío. Si se proporciona, primero se verificará la caché del repositorio en busca de 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 correcta, el archivo se agregará a la caché. |
type
|
cadena;
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 de archivo de la URL. Si el archivo no tiene extensión, puedes especificar de forma explícita "zip", "jar", "war", "aar", "nupkg", "tar", "tar.gz", "tgz", "tar.xz", "txz", ".tar.zst", ".tzst", "tar.bz2", ".tbz", ".ar" o ".deb" aquí. |
strip_prefix
|
cadena;
el valor predeterminado es '' Es un prefijo de directorio para quitar de los archivos extraídos. Muchos archivos contienen un directorio de nivel superior que contiene todos los archivos del archivo. En lugar de tener que especificar este prefijo una y otra vez en build_file , este campo se puede
usar para quitarlo de los archivos extraídos.
Para la compatibilidad, este parámetro también se puede usar con el nombre obsoleto |
allow_fail
|
bool;
El valor predeterminado es False Si se establece, indica el error en el valor que se muestra en lugar de generar un error para las descargas fallidas. |
canonical_id
|
cadena;
el valor predeterminado es '' Si se establece, restringe los aciertos de caché a los 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 comprobación" ( sha256 o integrity ).
|
auth
|
dict;
El valor predeterminado es {} . Es un diccionario opcional que especifica información de autenticación para algunas de las URLs. |
headers
|
dict;
El valor predeterminado es {} Es un diccionario opcional que especifica encabezados HTTP para todas las URLs. |
integrity
|
cadena;
el valor predeterminado es '' Es la suma de comprobación esperada del archivo descargado, en formato de integridad de subrecursos. Debe coincidir con la suma de comprobación del archivo descargado. Omitir la suma de comprobación es un riesgo de seguridad, ya que los archivos remotos pueden cambiar. En el mejor de los casos, omitir este campo hará que tu compilación no sea hermética. Es opcional para facilitar el desarrollo, pero debe configurarse antes del envío. Si se proporciona, primero se verificará la caché del repositorio en busca de un archivo con la suma de comprobación determinada. Solo se intentará una descarga si no se encuentra el archivo en la caché. Después de una descarga correcta, el archivo se agregará a la caché. |
rename_files
|
dict:
El valor predeterminado es {} .Es un diccionario opcional que especifica los archivos a los que se les cambiará el nombre durante la extracción. Los nombres de las entradas de archivo que coincidan exactamente con una clave se cambiarán al valor antes de cualquier ajuste de prefijo de directorio. Se puede usar para extraer archivos que contengan nombres de archivo que no sean Unicode o que tengan archivos que se extraigan 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="")Ejecuta el comando que se proporciona en la lista de argumentos. El tiempo de ejecución del comando está limitado por
timeout
(en segundos, el valor predeterminado es de 600 segundos). Este método muestra 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
|
sequence;
obligatorio Es una lista de argumentos, en la que el primer elemento debe ser la ruta de acceso al programa que se ejecutará. |
timeout
|
int;
El valor predeterminado es 600 Es la duración máxima del comando en segundos (el valor predeterminado es de 600 segundos). |
environment
|
dict;
el valor predeterminado es {} Fuerza que se configuren algunas variables de entorno para que se pasen al proceso. El valor puede ser None para quitar la variable de entorno.
|
quiet
|
bool;
el valor predeterminado es True Indica si stdout y stderr se deben imprimir en la terminal. |
working_directory
|
cadena;
el valor predeterminado es "" Es el 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='', strip_prefix='', *, rename_files={}, watch_archive='auto')
Extrae un archivo en el directorio del repositorio.
Parámetros
Parámetro | Descripción |
---|---|
archive
|
cadena, etiqueta o ruta de acceso;
obligatoria ruta de acceso al archivo que se descomprimirá, en relación con el directorio del repositorio |
output
|
cadena, etiqueta o ruta;
el valor predeterminado es '' ; es la ruta de acceso al directorio en el que se descomprimirá el archivo, en relación con el directorio del repositorio. |
strip_prefix
|
cadena;
el valor predeterminado es '' un prefijo de directorio para quitar de los archivos extraídos. Muchos archivos contienen un directorio de nivel superior que contiene todos los archivos del archivo. En lugar de tener que especificar este prefijo una y otra vez en build_file , este campo se puede usar para quitarlo de los archivos extraídos.
Para la compatibilidad, este parámetro también se puede usar con el nombre obsoleto |
rename_files
|
dict:
El valor predeterminado es {} .Es un diccionario opcional que especifica los archivos a los que se les cambiará el nombre durante la extracción. Los nombres de las entradas de archivo que coincidan exactamente con una clave se cambiarán al valor antes de cualquier ajuste de prefijo de directorio. Se puede usar para extraer archivos que contengan nombres de archivo que no sean Unicode o que tengan archivos que se extraigan en la misma ruta de acceso en sistemas de archivos que no distinguen mayúsculas de minúsculas. |
watch_archive
|
cadena;
el valor predeterminado es 'auto' Indica si se debe supervisar el archivo de almacenamiento. Puede ser la cadena "yes", "no" o "auto". Pasar "yes" equivale a invocar inmediatamente el método watch() . Pasar "no" no intenta supervisar el archivo. Pasar "auto" solo intentará supervisar 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=False)
Genera un archivo en el directorio del repositorio con el contenido proporcionado.
Parámetros
Parámetro | Descripción |
---|---|
path
|
cadena, etiqueta o ruta de acceso;
obligatorio Es la ruta de acceso del archivo que se creará, en relación con el directorio del repositorio. |
content
|
cadena;
el valor predeterminado es '' Es el contenido del archivo que se creará, vacío de forma predeterminada. |
executable
|
bool;
El valor predeterminado es True Establece la marca ejecutable en el archivo creado, que es verdadera de forma predeterminada. |
legacy_utf8
|
bool;
El valor predeterminado es False No realiza ninguna acción. Este parámetro dejó de estar disponible y se quitará en una versión futura de Bazel. |
getenv
string repository_ctx.getenv(name, default=None)Muestra el valor de una variable de entorno
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 que nombre name
hará que se vuelva a recuperar este repositorio.
Parámetros
Parámetro | Descripción |
---|---|
name
|
cadena;
obligatorio Es el nombre de la variable de entorno deseada. |
default
|
cadena o None ;
el valor predeterminado es None Es el valor predeterminado que se muestra si no se encuentra name .
|
None
.
nombre
string repository_ctx.nameEs el nombre del repositorio externo que crea esta regla.
os
repository_os repository_ctx.osEs una estructura para acceder a la información del sistema.
patch
None
repository_ctx.patch(patch_file, strip=0, *, watch_patch='auto')
Aplica un archivo de parche al directorio raíz del repositorio externo. El archivo de parche debe ser un archivo estándar de formato de diferencias unificadas. La implementación de parches nativa de Bazel no admite la coincidencia difusa ni el parche binario, como la herramienta de línea de comandos de parches.
Parámetros
Parámetro | Descripción |
---|---|
patch_file
|
cadena, etiqueta o ruta;
obligatorio Es el archivo de parche que se aplicará. Puede ser una etiqueta, una ruta de acceso relativa o una absoluta. Si es una ruta de acceso relativa, se resolverá en el directorio del repositorio. |
strip
|
int;
El valor predeterminado es 0 Quita la cantidad especificada de componentes iniciales de los nombres de archivo. |
watch_patch
|
cadena;
el valor predeterminado es 'auto' Indica si se debe supervisar el archivo de parche. Puede ser la cadena "yes", "no" o "auto". Pasar "yes" equivale a invocar inmediatamente el método watch() . Pasar "no" no intenta supervisar el archivo. Pasar "auto" solo intentará supervisar 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)Muestra una ruta de acceso a partir de una cadena, etiqueta o ruta. Si la ruta de acceso es relativa, se resolverá en función del directorio del repositorio. Si la ruta es una etiqueta, se resolverá en la ruta del archivo correspondiente. Ten en cuenta que los repositorios remotos se ejecutan durante la fase de análisis y, por lo tanto, no pueden depender de un resultado objetivo (la etiqueta debe apuntar a un archivo no generado). Si path es una ruta de acceso, se mostrará tal como está.
Parámetros
Parámetro | Descripción |
---|---|
path
|
cadena, etiqueta o ruta;
obligatoriostring , Label o path a partir de los cuales se puede crear una ruta de acceso.
|
read
string repository_ctx.read(path, *, watch='auto')Lee el contenido de un archivo en el sistema de archivos.
Parámetros
Parámetro | Descripción |
---|---|
path
|
cadena, etiqueta o ruta;
obligatorio Es la ruta de acceso del archivo del que se leerá. |
watch
|
cadena;
el valor predeterminado es 'auto' Indica si se debe supervisar el archivo. Puede ser la cadena "yes", "no" o "auto". Pasar "yes" equivale a invocar inmediatamente el método watch() . Pasar "no" no intenta supervisar el archivo. Pasar "auto" solo intentará supervisar el archivo cuando sea legal hacerlo (consulta la documentación de watch() para obtener más información).
|
renombrar
None
repository_ctx.rename(src, dst)
Cambia el nombre del archivo o directorio de src
a dst
. Los directorios superiores se crean según sea necesario. Falla si la ruta de acceso de destino ya existe. Ambas rutas deben estar dentro del repositorio.
Parámetros
Parámetro | Descripción |
---|---|
src
|
cadena, etiqueta o ruta;
obligatorio Es la ruta de acceso del archivo o directorio existente al que se le cambiará el nombre, en relación con el directorio del repositorio. |
dst
|
cadena, etiqueta o ruta;
obligatorio Es el nombre nuevo al que se cambiará el nombre del archivo o directorio, en relación con el directorio del repositorio. |
report_progress
None
repository_ctx.report_progress(status='')
Actualiza el estado de progreso para la recuperación de este repositorio o extensión de módulo.
Parámetros
Parámetro | Descripción |
---|---|
status
|
cadena;
el valor predeterminado es '' string que describe el estado actual del progreso de recuperación.
|
symlink
None
repository_ctx.symlink(target, link_name)
Crea un symlink en el sistema de archivos.
Parámetros
Parámetro | Descripción |
---|---|
target
|
cadena, etiqueta o ruta;
obligatorio Es la ruta a la que debe apuntar el symlink. |
link_name
|
cadena, etiqueta o ruta;
obligatorio Es la ruta de acceso del symlink que se creará. |
plantilla
None
repository_ctx.template(path, template, substitutions={}, executable=True, *, watch_template='auto')
Genera un archivo nuevo con un template
. Cada ocurrencia en template
de una clave de substitutions
se reemplazará por el valor correspondiente. El resultado se escribe en path
. Se puede configurar un argumento executable
opcional (el valor predeterminado es verdadero) para activar o desactivar el bit ejecutable.
Parámetros
Parámetro | Descripción |
---|---|
path
|
cadena, etiqueta o ruta de acceso;
obligatorio Es la ruta de acceso del archivo que se creará, en relación con el directorio del repositorio. |
template
|
cadena, etiqueta o ruta;
obligatorio Es la ruta de acceso al archivo de plantilla. |
substitutions
|
dict:
El valor predeterminado es {} . Son las sustituciones que se deben realizar cuando se expande la plantilla. |
executable
|
bool;
El valor predeterminado es True Establece la marca ejecutable en el archivo creado, que es verdadera de forma predeterminada. |
watch_template
|
cadena;
el valor predeterminado es 'auto' Indica si se debe supervisar el archivo de plantilla. Puede ser la cadena "yes", "no" o "auto". Pasar "yes" equivale a invocar inmediatamente el método watch() . Pasar "no" no intenta supervisar el archivo. Pasar "auto" solo intentará supervisar el archivo cuando sea legal hacerlo (consulta la documentación de watch() para obtener más información).
|
reloj
None
repository_ctx.watch(path)
Le indica a Bazel que vigile los cambios en la ruta de acceso determinada, ya sea que exista o no, o si es un archivo o un directorio. Cualquier cambio en el archivo o directorio invalidará esta extensión de repositorio o módulo y hará que se vuelva a recuperar o evaluar la próxima vez.Los "Cambios" incluyen cambios en el contenido del archivo (si la ruta de acceso es un archivo), si la ruta de acceso era un archivo, pero ahora es un directorio, o viceversa, y si la ruta de acceso comienza o deja de existir. En particular, esto no incluye cambios en ningún archivo del directorio si la ruta de acceso es un directorio. Para ello, usa path.readdir()
.
Ten en cuenta que, si intentas supervisar las rutas de acceso dentro del repositorio que se está recuperando o dentro del directorio de trabajo de la extensión del módulo actual, se producirá un error. Una extensión de módulo que intente supervisar una ruta de acceso fuera del lugar de trabajo de Bazel actual también generará un error.
Parámetros
Parámetro | Descripción |
---|---|
path
|
cadena, etiqueta o ruta;
obligatorio Es la ruta del archivo que se supervisará. |
watch_tree
None
repository_ctx.watch_tree(path)
Le indica a Bazel que detecte cambios en cualquier archivo o directorio de forma transitiva en la ruta de acceso determinada. Cualquier cambio en el contenido de los archivos, la existencia de archivos o directorios, o los nombres de archivos o directorios, hará que se vuelva a recuperar este repo.Ten en cuenta que, si intentas supervisar las rutas de acceso dentro del repositorio que se está recuperando, se generará un error.
Parámetros
Parámetro | Descripción |
---|---|
path
|
cadena, etiqueta o ruta;
obligatorio Es la ruta de acceso del árbol de directorios que se supervisará. |
cuál
path repository_ctx.which(program)Muestra el
path
del programa correspondiente o None
si no hay tal programa en la ruta de acceso.
Parámetros
Parámetro | Descripción |
---|---|
program
|
cadena;
obligatorio Es el programa que se debe encontrar en la ruta de acceso. |
None
.
workspace_root
path repository_ctx.workspace_rootEs la ruta de acceso al lugar de trabajo raíz de la invocación de bazel.