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",
)
talvez
maybe(repo_rule, name, kwargs)
Função de utilitário 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.
entrada para o analisador. |
filename |
opcional.
O padrão é None .
nome do arquivo a ser usado em mensagens de erro, se houver. |
Retorna
Dicionário que mapeia os nomes de máquinas para um dicionário com as informações fornecidas sobre elas
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 é destinada a 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, identificadores 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 .
Comandos do PowerShell para execução de patches, transmitidos 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
usar o dict para mapear nomes de máquina para um dict com as informações fornecidas sobre eles.
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
Dicionário que mapeia os nomes de máquinas para um dicionário com as informações fornecidas sobre eles.
update_attrs
update_attrs(orig, keys, override)
Função de utilitário 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.
dicionário de atributos para substituir ou adicionar à origem |
Retorna
dicionário de atributos com as chaves da substituição inserida/atualizada
use_netrc
use_netrc(netrc, urls, patterns)
Calcula um dicionário 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 de utilitário para escrever WORKSPACE e, se solicitado, um arquivo BUILD.
Essa regra deve 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. |