Distronaut adalah alat yang bepergian melalui internet untuk menemukan tautan ISO distribusi dan metadata, membuatnya lebih mudah bagi Anda untuk memantau rilis baru, membakar media instal atau membangun arsip ISO Bank Anda sendiri.
Menggunakan biner yang sudah dibangun:
go install github.com/ovh/distronaut@latestMembangun dari sumber
make Gunakan perintah fetch untuk mengambil json dari sumber yang dikonfigurasi:
distronaut fetch -c config/sources.yml -f ' debian 'Output mirip dengan di bawah ini:
[
{
"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 "
}
}
]
}
]Metadata tambahan dibatalkan dari distrowatch.com.
Paket ini juga dapat diimpor dalam basis kode Golang lain:
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 ))
}Buka file konfigurasi Anda dan tambahkan entri baru, berisi:
name adalah nama yang ramah untuk sumber baru Anda (juga dapat digunakan untuk memfilter)url adalah pola URL sumber:patterns adalah peta yang berisi::* adalah pola regex yang cocok dengan parameter rute yang ditentukank<:name> sintaks.hash.* berisi semua pengaturan terkait hash.hash.file adalah pola regex yang cocok dengan file yang berisi hash.hash.pattern adalah pola regex yang menangkap hash dari ISO yang diberikan (yang dapat direferensikan kembali dengan k<iso> ).hash.algo adalah nama algoritma hash.meta.* berisi semua pengaturan terkait metadata.meta.source harus diatur ke distrowatch (hanya sumber metadata yang didukung untuk saat ini).meta.id adalah pegangan distro pada distrowatch.meta.version adalah pola regex yang cocok dengan versi seperti yang dirujuk pada distrowatchSumber contoh:
- 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+)Harap baca Pedoman Kontribusi kami terlebih dahulu (Kontribusi.MD).
Jalankan tes menggunakan:
make testServer yang diejek akan secara sementara diteluskan pada port 3000 untuk menghindari melakukan permintaan jaringan nyata.
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.