As funções a seguir podem ser carregadas de
@bazel_tools//tools/build_defs/repo:utils.bzl
.
Utilitários para manipular repositórios externos, depois de buscados.
Configuração
Esses utilitários são destinados a serem usados por outras regras do repositório. Eles podem ser carregados da seguinte maneira:
load(
"@bazel_tools//tools/build_defs/repo:utils.bzl",
"workspace_and_buildfile",
"patch",
"update_attrs",
)
get_auth
get_auth(ctx, urls)
Função utilitária para receber o dicionário de autenticação correto para uma lista de URLs do arquivo .netrc.
Suporte a atributos opcionais de netrc e auth_patterns, se disponíveis.
Parâmetros
ctx |
uma API.
O contexto do repositório da regra do repositório que chama essa função de utilitário. |
urls |
uma API.
a lista de URLs para ler |
Retorna
o dicionário de autenticação que pode ser transmitido para repository_ctx.download
talvez
maybe(repo_rule, name, kwargs)
Função utilitária para adicionar um repositório apenas se ele ainda não estiver presente.
Isso é para implementar a macro safe repositories.bzl documentada em https://bazel.build/rules/deploying#dependencies.
Parâmetros
repo_rule |
uma API.
função de regra do repositório. |
name |
uma API.
nome do repositório a ser criado. |
kwargs |
opcional.
os argumentos restantes que são transmitidos para a função repo_rule. |
Retorna
Nada, define o repositório quando necessário como um efeito colateral.
parse_netrc
parse_netrc(contents, filename)
Função utilitária para analisar pelo menos um arquivo .netrc básico.
Parâmetros
contents |
uma API.
para o analisador. |
filename |
opcional. O padrão é None .
nome do arquivo a ser usado em mensagens de erro, se houver. |
Retorna
usar o dict para mapear nomes de máquina para um dict com as informações fornecidas sobre eles.
patch
patch(ctx, patches, patch_cmds, patch_cmds_win, patch_tool, patch_args, auth)
Implementação da aplicação de patches em um repositório já extraído.
Essa regra deve ser usada na função de implementação de
uma regra de repositório. Se os parâmetros patches
, patch_tool
,
patch_args
, patch_cmds
e patch_cmds_win
não forem especificados,
eles serão retirados de ctx.attr
.
Parâmetros
ctx |
uma API.
O contexto do repositório da regra do repositório que chama essa função de utilitário. |
patches |
opcional.
O padrão é None .
Os arquivos de patch a serem aplicados. Lista de strings, rótulos ou caminhos. |
patch_cmds |
opcional.
O padrão é None .
Comandos bash para execução de patches, transmitidos um por vez para bash -c. Lista de strings |
patch_cmds_win |
opcional.
O padrão é None .
Os comandos do PowerShell para execução de patches, passados um de cada vez para powershell /c. Lista de strings. Se o valor booleano desse parâmetro for falso, patch_cmds será usado e esse parâmetro será ignorado. |
patch_tool |
opcional.
O padrão é None .
Caminho da ferramenta de patch a ser executada para aplicar patches. String. |
patch_args |
opcional.
O padrão é None .
Argumentos a serem passados para a ferramenta de patch. Lista de strings. |
auth |
opcional. O padrão é None .
Um dicionário opcional que especifica informações de autenticação para alguns dos URLs. |
read_netrc
read_netrc(ctx, filename)
Função utilitária para analisar pelo menos um arquivo .netrc básico.
Parâmetros
ctx |
uma API.
O contexto do repositório da regra do repositório que chama essa função de utilitário. |
filename |
uma API.
o nome do arquivo .netrc a ser lido |
Retorna
Dicionário que mapeia os nomes de máquinas para um dicionário com as informações fornecidas sobre elas
read_user_netrc
read_user_netrc(ctx)
Leia o arquivo netrc padrão do usuário.
Parâmetros
ctx |
uma API.
O contexto do repositório da regra do repositório que chama essa função utilitária. |
Retorna
dict que mapeia nomes de máquinas para um dict com as informações fornecidas sobre eles.
update_attrs
update_attrs(orig, keys, override)
Função utilitária para alterar e adicionar os atributos especificados a uma invocação de regra de repositório específica.
Isso é usado para tornar uma regra reproduzível.
Parâmetros
orig |
uma API.
dict de atributos realmente definidos (explicitamente ou implícitamente) por uma determinada invocação de |
keys |
uma API.
conjunto completo de atributos definidos nesta regra |
override |
uma API.
dict de atributos para substituir ou adicionar ao original |
Retorna
dict de atributos com as chaves de substituição inserida/atualizada
use_netrc
use_netrc(netrc, urls, patterns)
Calcula um dict de autenticação a partir de um arquivo netrc analisado e uma lista de URLs.
Parâmetros
netrc |
uma API.
um arquivo netrc já analisado para um dicionário, por exemplo, como o recebido de read_netrc |
urls |
uma API.
uma lista de URLs. |
patterns |
uma API.
Dicionário opcional de URL para padrões de autorização |
Retorna
dict adequado como argumento de autenticação para ctx.download. Mais precisamente, ele mapeará todos os URLs em que o arquivo netrc fornece login e senha para um dict que contém o login, a senha e o padrão de autorização opcional correspondentes, bem como o mapeamento de "type" para "basic" ou "pattern".
workspace_and_buildfile
workspace_and_buildfile(ctx)
Função utilitária para gravar WORKSPACE e, se solicitado, um arquivo BUILD.
Essa regra é destinada a ser usada na função de implementação de uma
regra de repositório.
Ele pressupõe que os parâmetros name
, build_file
, build_file_content
,
workspace_file
e workspace_file_content
estejam
presentes em ctx.attr
. Os quatro últimos podem ter o valor None.
Parâmetros
ctx |
uma API.
O contexto do repositório da regra do repositório que chama essa função de utilitário. |