O Distronaut é uma ferramenta que viaja pela Internet para encontrar links ISO e metadados de distribuição, facilitando o monitoramento de novos lançamentos, o Burn Install Medias ou construa seu próprio arquivo do ISO Bank.
Usando um binário pré-construído:
go install github.com/ovh/distronaut@latestEdifício da fonte
make Use o Comando fetch para recuperar um JSON de fontes configuradas:
distronaut fetch -c config/sources.yml -f ' debian 'A saída é semelhante a abaixo:
[
{
"source" : " Debian " ,
"family" : " Linux " ,
"distribution" : " Debian (formerly Debian GNU/Linux) " ,
"website" : " http://www.debian.org/ " ,
"documentation" : " http://www.debian.org/doc/ " ,
"status" : " Active " ,
"logo" : " https://distrowatch.com/images/yvzhuwbpy/debian.png " ,
"logo64" : " data:image/png;base64,... " ,
"versions" : [
{
"url" : " https://cdimage.debian.org/cdimage/archive/12.6.0/amd64/iso-cd/debian-12.6.0-amd64-netinst.iso " ,
"hash" : " sha256:ade3a4acc465f59ca2496344aab72455945f3277a52afc5a2cae88cdc370fa12 " ,
"hashfile" : " https://cdimage.debian.org/cdimage/archive/12.6.0/amd64/iso-cd/SHA256SUMS " ,
"version" : " 12.6.0 " ,
"arch" : " amd64 " ,
"meta" : {
"release" : " 2023-06-10 "
}
}
]
}
]Metadados adicionais são descartados do distrowatch.com.
Este pacote também pode ser importado dentro de outra base de código de Golang:
package main
import (
"encoding/json"
"fmt"
"github.com/ovh/distronaut/pkg/distro"
)
func main () {
src , _ := distro . FetchSources ( "config/sources.yml" , "debian" )
j , _ := json . MarshalIndent ( src , "" , " " )
fmt . Println ( string ( j ))
}Abra seu arquivo de configuração e adicione uma nova entrada, contendo:
name é um nome amigável para sua nova fonte (também pode ser usado para filtrar)url é o padrão de URL de origem:patterns é um mapa que contém::* Os padrões regex são correspondidos pelo parâmetro de rota definidok<:name> sintaxe.hash.* contém todas as configurações relacionadas ao hash.hash.file é um padrão regex que corresponde ao arquivo que contém hashes.hash.pattern é um padrão regex que captura o hash de um determinado ISO (que pode ser referenciado com k<iso> ).hash.algo é o nome do algoritmo de hash.meta.* Contém todas as configurações relacionadas a metadados.meta.source deve ser definido para distrowatch (apenas a fonte de metadados suportada por enquanto).meta.id é a alça de distro na distrowatch.meta.version é um padrão regex que corresponde à versão como é referenciado na distrowatchExemplo de fonte:
- name : Debian
url : https://cdimage.debian.org/debian-cd/:version/:arch/iso-cd/:iso
patterns :
:version : ^(d+.d+(?:.d+)?)/$
:arch : ^(amd64|arm64)/$
:iso : ^debian-k<version>-k<arch>-netinst.iso$
.hash.file : SHA256SUMS
.hash.algo : sha256
.hash.pattern : (?m)^([0-9a-f]{64})s+k<iso>
.meta.source : distrowatch
.meta.id : debian
.meta.version : (d+)Leia nossas diretrizes de contribuição primeiro (contribuindo.md).
Execute testes usando:
make testUm servidor zombado será gerado temporário na porta 3000 para evitar realizar solicitações de rede reais.
Copyright 2021 OVH SAS
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.