Divonaut ist ein Tool, das durch das Internet reist, um Distribution ISO -Links und Metadaten zu finden, sodass Sie neue Veröffentlichungen überwachen, Installationsmedien verbrennen oder Ihr eigenes ISO -Bankarchiv erstellen können.
Verwenden einer vorgefertigten Binärdatei:
go install github.com/ovh/distronaut@latestGebäude aus der Quelle
make Verwenden Sie den Befehl fetch , um einen JSON aus konfigurierten Quellen abzurufen:
distronaut fetch -c config/sources.yml -f ' debian 'Die Ausgabe ist ähnlich wie unten:
[
{
"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 "
}
}
]
}
]Zusätzliche Metadaten werden von Destrowatch.com verschrottet.
Dieses Paket kann auch in einer anderen Golang -Codebasis importiert werden:
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 ))
}Öffnen Sie Ihre Konfigurationsdatei und fügen Sie einen neuen Eintrag hinzu, der enthält:
name ist ein freundlicher Name für Ihre neue Quelle (kann auch zum Filtern verwendet werden)url ist das Quell -URL -Muster:patterns ist eine Karte mit::* sind Regex -Muster, die mit dem definierten Routenparameter übereinstimmen werdenk<:name> syntax zurückgefertigt werden.hash.* Enthält alle hashbezogenen Einstellungen.hash.file ist ein Regex -Muster, das der Datei mit Hashes entspricht.hash.pattern ist ein Regex-Muster, das den Hash aus einer bestimmten ISO erfasst (die mit k<iso> zurückbewertet werden kann).hash.algo ist der Name des Hash -Algorithmus.meta.* Enthält alle metadatenbezogenen Einstellungen.meta.source muss auf distrowatch eingestellt sein (für den Moment nur Metadatenquelle).meta.id ist die Distribose der Distrowatchatch.meta.version ist ein Regex -Muster, das der Version entsprichtBeispielquelle:
- 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+)Bitte lesen Sie zuerst unsere Beitragsrichtlinien (beitragen.md).
Führen Sie Tests mit:
make testEin verspotteter Server wird vorübergehend auf Port 3000 hervorgebracht, um reale Netzwerkanforderungen zu vermeiden.
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.