Las siguientes funciones se pueden cargar desde @bazel_tools//tools/build_defs/repo:utils.bzl
.
Son utilidades para manipular repositorios externos una vez que se recuperan.
Configuración
Estas utilidades están diseñadas para que las usen otras reglas del repositorio. Se pueden cargar de la siguiente manera.
load(
"@bazel_tools//tools/build_defs/repo:utils.bzl",
"workspace_and_buildfile",
"patch",
"update_attrs",
)
get_auth
get_auth(ctx, urls)
Función de utilidad para obtener el diccionario de autenticación correcto para una lista de URLs del archivo .netrc.
Admite los atributos opcionales netrc y auth_patterns si están disponibles.
Parámetros
ctx |
de procesamiento necesarios.
Es el contexto del repositorio de la regla del repositorio que llama a esta función de utilidad. |
urls |
de procesamiento necesarios.
Es la lista de URLs para leer. |
Muestra
Es el diccionario de autenticación que se puede pasar a repository_ctx.download.
tal vez
maybe(repo_rule, name, kwargs)
Función de utilidad para agregar un repositorio solo si aún no está presente.
Esto sirve para implementar la macro safe_repositories.bzl que se documenta en https://bazel.build/rules/deploying#dependencies.
Parámetros
repo_rule |
de procesamiento necesarios.
función de regla del repositorio. |
name |
de procesamiento necesarios.
Nombre del repositorio que se creará. |
kwargs |
Opcional.
Son los argumentos restantes que se pasan a la función repo_rule. |
Muestra
No hace nada, define el repositorio cuando es necesario como efecto secundario.
parse_netrc
parse_netrc(contents, filename)
Función de utilidad para analizar al menos un archivo .netrc básico.
Parámetros
contents |
de procesamiento necesarios.
entrada para el analizador. |
filename |
Opcional. El valor predeterminado es None .
Nombre de archivo que se usará en los mensajes de error, si corresponde. |
Muestra
Es un diccionario que asigna nombres de máquinas a un diccionario con la información proporcionada sobre ellas.
patch
patch(ctx, patches, patch_cmds, patch_cmds_win, patch_tool, patch_args, auth)
Implementación de la aplicación de parches a un repositorio ya extraído.
Esta regla está diseñada para usarse en la función de implementación de una regla de repositorio. Si no se especifican los parámetros patches
, patch_tool
, patch_args
, patch_cmds
y patch_cmds_win
, se toman de ctx.attr
.
Parámetros
ctx |
de procesamiento necesarios.
Es el contexto del repositorio de la regla del repositorio que llama a esta función de utilidad. |
patches |
Opcional. El valor predeterminado es None .
Son los archivos de parche que se aplicarán. Lista de cadenas, etiquetas o rutas. |
patch_cmds |
Opcional. El valor predeterminado es None .
Comandos de Bash para ejecutar parches, que se pasan de a uno por vez a bash -c. Lista de strings |
patch_cmds_win |
Opcional. El valor predeterminado es None .
Comandos de PowerShell que se ejecutan para aplicar parches, y se pasan de a uno a powershell /c. Es una lista de cadenas. Si el valor booleano de este parámetro es falso, se usará patch_cmds y se ignorará este parámetro. |
patch_tool |
Opcional. El valor predeterminado es None .
Es la ruta de acceso a la herramienta de parches que se ejecutará para aplicar parches. String. |
patch_args |
Opcional. El valor predeterminado es None .
Son los argumentos que se pasarán a la herramienta de parche. Es una lista de cadenas. |
auth |
Opcional. El valor predeterminado es None .
Es un diccionario opcional que especifica la información de autenticación para algunas de las URLs. |
read_netrc
read_netrc(ctx, filename)
Función de utilidad para analizar al menos un archivo .netrc básico.
Parámetros
ctx |
de procesamiento necesarios.
Es el contexto del repositorio de la regla del repositorio que llama a esta función de utilidad. |
filename |
de procesamiento necesarios.
Nombre del archivo .netrc que se leerá |
Muestra
Es un diccionario que asigna nombres de máquinas a un diccionario con la información proporcionada sobre ellas.
read_user_netrc
read_user_netrc(ctx)
Lee el archivo .netrc predeterminado del usuario.
Parámetros
ctx |
de procesamiento necesarios.
Es el contexto del repositorio de la regla del repositorio que llama a esta función de utilidad. |
Muestra
Es un diccionario que asigna nombres de máquinas a un diccionario con la información proporcionada sobre ellas.
update_attrs
update_attrs(orig, keys, override)
Es una función de utilidad para alterar y agregar los atributos especificados a una invocación de regla de repositorio en particular.
Se usa para que una regla sea reproducible.
Parámetros
orig |
de procesamiento necesarios.
Es un diccionario de atributos establecidos realmente (ya sea de forma explícita o implícita) por una invocación de regla en particular. |
keys |
de procesamiento necesarios.
conjunto completo de atributos definidos en esta regla |
override |
de procesamiento necesarios.
Es un diccionario de atributos para anular o agregar al original. |
Muestra
Es un diccionario de atributos con las claves de la anulación insertadas o actualizadas.
use_netrc
use_netrc(netrc, urls, patterns)
Calcula un diccionario de autenticación a partir de un archivo .netrc analizado y una lista de URLs.
Parámetros
netrc |
de procesamiento necesarios.
Un archivo .netrc ya analizado en un diccionario, p. ej., como se obtuvo de read_netrc |
urls |
de procesamiento necesarios.
Una lista de URLs |
patterns |
de procesamiento necesarios.
Diccionario opcional de URL a patrones de autorización |
Muestra
Es un diccionario adecuado como argumento de autenticación para ctx.download; más precisamente, el diccionario asignará todas las URLs en las que el archivo .netrc proporciona el acceso y la contraseña a un diccionario que contiene el acceso, la contraseña y el patrón de autorización opcional correspondientes, así como la asignación de "type" a "basic" o "pattern".
workspace_and_buildfile
workspace_and_buildfile(ctx)
Es una función de utilidad para escribir WORKSPACE y, si se solicita, un archivo BUILD.
Esta regla está diseñada para usarse en la función de implementación de una regla de repositorio.
Se supone que los parámetros name
, build_file
, build_file_content
, workspace_file
y workspace_file_content
están presentes en ctx.attr
; los últimos cuatro posiblemente con el valor None.
Parámetros
ctx |
de procesamiento necesarios.
Es el contexto del repositorio de la regla del repositorio que llama a esta función de utilidad. |