As seguintes funções 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 ao uso por outras regras de repositório. Eles podem ser carregados da seguinte forma.
load(
"@bazel_tools//tools/build_defs/repo:utils.bzl",
"workspace_and_buildfile",
"patch",
"update_attrs",
)
então
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.
argumentos restantes 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
dict que mapeia nomes de máquinas para um dict com as informações fornecidas sobre elas
patch
patch(ctx, patches, patch_cmds, patch_cmds_win, patch_tool, patch_args, auth)
Implementação de patch 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 extraídos de ctx.attr
.
Parâmetros
ctx |
uma API.
O contexto do repositório da regra que chama essa função utilitária. |
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 a serem executados para aplicação de patch, transmitidos um de cada vez para bash -c. Lista de strings |
patch_cmds_win |
opcional.
O padrão é None
Comandos do PowerShell para execução de patch, transmitidos um de cada vez para powershell /c. Lista de strings. Se o valor booleano desse parâmetro for "false", 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 transmitidos 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 que chama essa função utilitária. |
filename |
uma API.
o nome do arquivo .netrc a ser lido |
Retorna
dict que mapeia nomes de máquinas para um dict com as informações fornecidas sobre elas
read_user_netrc
read_user_netrc(ctx)
Lê o arquivo netrc padrão do usuário.
Parâmetros
ctx |
uma API.
O contexto do repositório da regra que chama essa função utilitária. |
Retorna
dict que mapeia nomes de máquinas para um dict com as informações fornecidas sobre elas.
update_attrs
update_attrs(orig, keys, override)
Função utilitária para alterar e adicionar os atributos especificados a uma determinada invocação de regra de repositório.
Isso é usado para tornar uma regra reproduzível.
Parâmetros
orig |
uma API.
dicionário de atributos definidos (explícita ou implicitamente) por uma determinada invocação de regra |
keys |
uma API.
conjunto completo de atributos definidos nessa regra |
override |
uma API.
Dicionário de atributos para substituir ou adicionar ao orig |
Retorna
Dicionário de atributos com as chaves da substituição inseridas/atualizadas
use_netrc
use_netrc(netrc, urls, patterns)
Calcule um dicionário de autenticação de um arquivo netrc analisado e uma lista de URLs.
Parâmetros
netrc |
uma API.
um arquivo netrc já analisado em um dict, por exemplo, como obtido 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
Dicionário adequado como argumento de autenticação para ctx.download. Mais precisamente, o dicionário vai mapear todos os URLs em que o arquivo netrc fornece login e senha para um dicionário que contém o login, a senha e o padrão de autorização opcional correspondentes, além do 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 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 que chama essa função utilitária. |