repositório_de_repositório

O contexto da regra do repositório que contém funções auxiliares e informações sobre atributos. Você recebe um objeto repository_ctx como argumento para a função implementation ao criar uma regra de repositório.

Membros

attr

struct repository_ctx.attr

Uma struct para acessar os valores dos atributos. Os valores são fornecidos pelo usuário. Caso contrário, um valor padrão é usado.

excluir

bool repository_ctx.delete(path)

Exclui um arquivo ou diretório. Retorna um booleano, indicando se o arquivo ou diretório foi realmente excluído por essa chamada.

Parâmetros

Parâmetro Descrição
path string ou path; required
Caminho do arquivo a ser excluído, relativo ao diretório do repositório ou absoluto. Pode ser um caminho ou uma string.

download

struct repository_ctx.download(url, output='', sha256='', executable=False, allow_fail=False, canonical_id='', auth={}, *, integrity='')

Faz o download de um arquivo para o caminho de saída do URL fornecido e retorna uma struct que contém success, uma flag que é true se o download for concluído, e, se for bem-sucedido, um hash do arquivo com os campos sha256 e integrity.

Parâmetros

Parâmetro Descrição
url string ou iterável de strings; obrigatório
Lista de URLs espelhados que referenciam o mesmo arquivo.
output string; ou Label; ou path; o padrão é ''
caminho para o arquivo de saída, relativo ao diretório do repositório.
sha256 O padrão é ''
, o hash SHA-256 esperado do arquivo baixado. Ele precisa corresponder ao hash SHA-256 do arquivo baixado. Omitir o SHA-256 é um risco de segurança, já que os arquivos remotos podem mudar. Na melhor das hipóteses, omitir esse campo vai tornar seu build não hermético. É opcional para facilitar o desenvolvimento, mas precisa ser definido antes do envio.
executable O padrão é False
Defina a flag executável no arquivo criado. O padrão é "false".
allow_fail O padrão é False
. Se definido, indica o erro no valor de retorno em vez de gerar um erro para downloads com falha.
canonical_id O padrão é ''
. Se definido, restringe os acertos de cache aos casos em que o arquivo foi adicionado ao cache com o mesmo ID canônico.
auth O padrão é {}
Um dicionário opcional que especifica informações de autenticação para alguns dos URLs.
integrity O padrão é ''
Soma de verificação esperada do arquivo baixado, no formato de integridade de subrecursos. Ele precisa corresponder ao checksum do arquivo baixado. Omitir o checksum é um risco de segurança, já que os arquivos remotos podem mudar. Na melhor das hipóteses, omitir esse campo vai tornar seu build não hermético. É opcional para facilitar o desenvolvimento, mas precisa ser definido antes do envio.

download_and_extract

struct repository_ctx.download_and_extract(url, output='', sha256='', type='', stripPrefix='', allow_fail=False, canonical_id='', auth={}, *, integrity='', rename_files={})

Faz o download de um arquivo para o caminho de saída do URL fornecido, extrai e retorna uma struct que contém success, uma flag que é true se o download for concluído com êxito e, se for bem-sucedido, um hash do arquivo com os campos sha256 e integrity.

Parâmetros

Parâmetro Descrição
url string ou iterável de strings; obrigatório
Lista de URLs espelhados que referenciam o mesmo arquivo.
output string; ou Label; ou path; o padrão é ''
caminho para o diretório em que o arquivo será descompactado, relativo ao diretório do repositório.
sha256 O padrão é ''
, o hash SHA-256 esperado do arquivo baixado. Ele precisa corresponder ao hash SHA-256 do arquivo baixado. Omitir o SHA-256 é um risco de segurança, já que os arquivos remotos podem mudar. Na melhor das hipóteses, omitir esse campo vai tornar seu build não hermético. É opcional para facilitar o desenvolvimento, mas precisa ser definido antes do envio. Se fornecido, o cache do repositório será verificado primeiro em busca de um arquivo com o hash especificado. O download só será tentado se o arquivo não for encontrado no cache. Depois de um download bem-sucedido, o arquivo será adicionado ao cache.
type O padrão é ''
, o tipo de arquivo do arquivo baixado. Por padrão, o tipo de arquivo é determinado pela extensão do arquivo do URL. Se o arquivo não tiver uma extensão, especifique "zip", "jar", "war", "aar", "tar", "tar.gz", "tgz", "tar.xz", "txz", ".tar.zst", ".tzst", "tar.bz2", ".tbz", ".ar" ou ".deb".
stripPrefix O padrão é ''
, um prefixo de diretório a ser removido dos arquivos extraídos. Muitos arquivos contêm um diretório de nível superior com todos os arquivos do arquivo. Em vez de precisar especificar esse prefixo várias vezes no build_file, esse campo pode ser usado para removê-lo dos arquivos extraídos.
allow_fail O padrão é False
. Se definido, indica o erro no valor de retorno em vez de gerar um erro para downloads com falha.
canonical_id O padrão é ''
. Se definido, restringe os acertos de cache aos casos em que o arquivo foi adicionado ao cache com o mesmo ID canônico.
auth O padrão é {}
Um dicionário opcional que especifica informações de autenticação para alguns dos URLs.
integrity O padrão é ''
Soma de verificação esperada do arquivo baixado, no formato de integridade de subrecursos. Ele precisa corresponder ao checksum do arquivo baixado. Omitir o checksum é um risco de segurança, já que os arquivos remotos podem mudar. Na melhor das hipóteses, omitir esse campo vai tornar seu build não hermético. É opcional para facilitar o desenvolvimento, mas precisa ser definido antes do envio.
rename_files O padrão é {}
Um dicionário opcional que especifica os arquivos a serem renomeados durante a extração. As entradas de arquivo com nomes que correspondem exatamente a uma chave serão renomeadas para o valor, antes de qualquer ajuste de prefixo de diretório. Isso pode ser usado para extrair arquivos que contêm nomes de arquivos não Unicode ou que têm arquivos que seriam extraídos para o mesmo caminho em sistemas de arquivos sem diferenciação de maiúsculas e minúsculas.

execute

exec_result repository_ctx.execute(arguments, timeout=600, environment={}, quiet=True, working_directory="")

Executa o comando fornecido pela lista de argumentos. O tempo de execução do comando é limitado por timeout (em segundos, padrão de 600 segundos). Esse método retorna uma estrutura exec_result que contém a saída do comando. O mapa environment pode ser usado para substituir algumas variáveis de ambiente que serão transmitidas ao processo.

Parâmetros

Parâmetro Descrição
arguments obrigatório
Lista de argumentos. O primeiro elemento precisa ser o caminho para o programa a ser executado.
timeout O padrão é 600
duração máxima do comando em segundos (o padrão é 600 segundos).
environment O padrão é {}
. Força a definição de algumas variáveis de ambiente para serem transmitidas ao processo.
quiet O padrão é True
Se stdout e stderr devem ser impressos no terminal.
working_directory O padrão é ""
Diretório de trabalho para execução de comandos. Pode ser relativo à raiz do repositório ou absoluto.

extrair

None repository_ctx.extract(archive, output='', stripPrefix='', *, rename_files={})

Extraia um arquivo para o diretório do repositório.

Parâmetros

Parâmetro Descrição
archive string, Label ou path; required
caminho para o arquivo que será descompactado, relativo ao diretório do repositório.
output string; ou Label; ou path; o padrão é ''
caminho para o diretório em que o arquivo será descompactado, relativo ao diretório do repositório.
stripPrefix O padrão é ''
, um prefixo de diretório a ser removido dos arquivos extraídos. Muitos arquivos contêm um diretório de nível superior com todos os arquivos do arquivo. Em vez de precisar especificar esse prefixo várias vezes no build_file, esse campo pode ser usado para removê-lo dos arquivos extraídos.
rename_files O padrão é {}
Um dicionário opcional que especifica os arquivos a serem renomeados durante a extração. As entradas de arquivo com nomes que correspondem exatamente a uma chave serão renomeadas para o valor, antes de qualquer ajuste de prefixo de diretório. Isso pode ser usado para extrair arquivos que contêm nomes de arquivos não Unicode ou que têm arquivos que seriam extraídos para o mesmo caminho em sistemas de arquivos sem diferenciação de maiúsculas e minúsculas.

arquivo

None repository_ctx.file(path, content='', executable=True, legacy_utf8=True)

Gera um arquivo no diretório do repositório com o conteúdo fornecido.

Parâmetros

Parâmetro Descrição
path string; ou Label; ou path; required
caminho do arquivo a ser criado, relativo ao diretório do repositório.
content O padrão é ''
o conteúdo do arquivo a ser criado, vazio por padrão.
executable O padrão é True
Define a flag executável no arquivo criado, "true" por padrão.
legacy_utf8 O padrão é True
codifica o conteúdo do arquivo para UTF-8, o padrão é "true". Versões futuras vão mudar o padrão e remover esse parâmetro.

nome

string repository_ctx.name

O nome do repositório externo criado por essa regra.

os

repository_os repository_ctx.os

Uma struct para acessar informações do sistema.

patch

None repository_ctx.patch(patch_file, strip=0)

Aplique um arquivo de patch ao diretório raiz do repositório externo. O arquivo de patch precisa estar no formato diff unificado padrão. A implementação de patch nativa do Bazel não é compatível com a correspondência aproximada e o patch binário, como a ferramenta de linha de comando patch.

Parâmetros

Parâmetro Descrição
patch_file string; ou Label; ou path; required
O arquivo de patch a ser aplicado. Pode ser um rótulo, um caminho relativo ou um caminho absoluto. Se for um caminho relativo, ele será resolvido para o diretório do repositório.
strip O padrão é 0
remova o número especificado de componentes iniciais dos nomes de arquivos.

caminho

path repository_ctx.path(path)

Retorna um caminho de uma string, um rótulo ou um caminho. Se o caminho for relativo, ele será resolvido em relação ao diretório do repositório. Se o caminho for um rótulo, ele será resolvido como o caminho do arquivo correspondente. Os repositórios remotos são executados durante a fase de análise e, portanto, não podem depender de um resultado de destino. O rótulo precisa apontar para um arquivo não gerado. Se o caminho for um caminho, ele será retornado como está.

Parâmetros

Parâmetro Descrição
path string; ou Label; ou path; required
string, rótulo ou caminho de onde criar um caminho

ler

string repository_ctx.read(path)

Lê o conteúdo de um arquivo no sistema de arquivos.

Parâmetros

Parâmetro Descrição
path string; ou Label; ou path; required
caminho do arquivo a ser lido.

report_progress

None repository_ctx.report_progress(status='')

Atualiza o status do progresso da busca desta extensão de repositório ou módulo.

Parâmetros

Parâmetro Descrição
status string; o padrão é ''
string que descreve o status atual do progresso da busca

None repository_ctx.symlink(target, link_name)

Cria um link simbólico no sistema de arquivos.

Parâmetros

Parâmetro Descrição
target string; ou Label; ou path; required
O caminho que o link simbólico deve apontar.
string; ou Label; ou path; required
O caminho do link simbólico a ser criado, relativo ao diretório do repositório.

modelo

None repository_ctx.template(path, template, substitutions={}, executable=True)

Gera um novo arquivo usando um template. Todas as ocorrências em template de uma chave de substitutions serão substituídas pelo valor correspondente. O resultado é gravado em path. Um argumentoexecutable opcional (padrão é "true") pode ser definido para ativar ou desativar o bit executável.

Parâmetros

Parâmetro Descrição
path string; ou Label; ou path; required
caminho do arquivo a ser criado, relativo ao diretório do repositório.
template string; ou Label; ou path; required
caminho para o arquivo de modelo.
substitutions O padrão é {}
substituições a serem feitas ao expandir o modelo.
executable O padrão é True
Define a flag executável no arquivo criado, "true" por padrão.

qual

path repository_ctx.which(program)

Retorna o caminho do programa correspondente ou "None" se não houver um programa desse tipo no caminho.

Parâmetros

Parâmetro Descrição
program required
Programa a ser encontrado no caminho.
Pode retornar None.

workspace_root

path repository_ctx.workspace_root

O caminho para o espaço de trabalho raiz da invocação do Bazel.