Distronaut est un outil qui voyage sur Internet pour trouver des liens ISO et des métadonnées de distribution, ce qui vous permet de surveiller plus facilement les nouvelles versions, de brûler les supports d'installation ou de créer vos propres archives de banque ISO.
Utilisation d'un binaire prédéfini:
go install github.com/ovh/distronaut@latestBâtiment de Source
make Utilisez la commande fetch pour récupérer un JSON à partir de sources configurées:
distronaut fetch -c config/sources.yml -f ' debian 'La sortie est similaire à ci-dessous:
[
{
"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 "
}
}
]
}
]Les métadonnées supplémentaires sont supprimées de Distrowatch.com.
Ce package peut également être importé dans une autre base de code 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 ))
}Ouvrez votre fichier de configuration et ajoutez une nouvelle entrée, contenant:
name est un nom convivial pour votre nouvelle source (peut également être utilisée pour le filtrage)url est le modèle d'URL source:patterns sont une carte contenant::* sont des modèles regex qui sont appariés par un paramètre de route définik<:name>.hash.* Contient tous les paramètres liés au hachage.hash.file est un modèle regex correspondant au fichier contenant des hachages.hash.pattern est un motif regex capturant le hachage à partir d'une ISO donnée (qui peut être référencé avec k<iso> ).hash.algo est le nom de l'algorithme de hachage.meta.* Contient tous les paramètres liés aux métadonnées.meta.source doit être défini sur distrowatch (seule la source de métadonnées privée pour l'instant).meta.id est la poignée de distribution sur Distrowatch.meta.version est un motif regex correspondant à la version telle qu'elle est référencée sur DistrowatchExemple Source:
- 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+)Veuillez d'abord lire nos directives de contribution (contribution.md).
Exécutez des tests en utilisant:
make testUn serveur moqué sera temporaire engendré sur le port 3000 pour éviter de réaliser de véritables demandes de réseau.
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.