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",
)
download_remote_files
load("@bazel//tools/build_defs/repo:utils.bzl", "download_remote_files") download_remote_files(ctx, auth)
Função utilitária para baixar arquivos remotos.
Essa regra deve ser usada na função de implementação de
uma regra de repositório. Ele pressupõe que os parâmetros remote_file_urls
e remote_file_integrity
estejam presentes em ctx.attr
.
Parâmetros
ctx |
uma API.
O contexto do repositório da regra que chama essa função utilitária. |
auth |
opcional.
O padrão é None
Um dicionário opcional que especifica informações de autenticação para alguns dos URLs. |
get_auth
load("@bazel//tools/build_defs/repo:utils.bzl", "get_auth") get_auth(ctx, urls)
Função utilitária para extrair o dicionário de autenticação correto para uma lista de URLs do arquivo .netrc.
Suporte aos atributos opcionais netrc e auth_patterns, se disponíveis.
Parâmetros
ctx |
uma API.
O contexto do repositório da regra que chama essa função utilitária. |
urls |
uma API.
a lista de URLs para ler |
Retorna
o dicionário de autenticação que pode ser transmitido para repository_ctx.download
então
load("@bazel//tools/build_defs/repo:utils.bzl", "maybe") 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
load("@bazel//tools/build_defs/repo:utils.bzl", "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 é "a .netrc file"
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
load("@bazel//tools/build_defs/repo:utils.bzl", "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
load("@bazel//tools/build_defs/repo:utils.bzl", "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
load("@bazel//tools/build_defs/repo:utils.bzl", "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
load("@bazel//tools/build_defs/repo:utils.bzl", "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
load("@bazel//tools/build_defs/repo:utils.bzl", "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
load("@bazel//tools/build_defs/repo:utils.bzl", "workspace_and_buildfile") workspace_and_buildfile(ctx)
Função utilitária para gravar 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
e build_file_content
estejam presentes em ctx.attr
. Os dois ú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. |