Distronaut - это инструмент, который путешествует через Интернет, чтобы найти распределительные ссылки ISO и метаданные, что облегчает мониторинг новых выпусков, сжигать установку средств массовой информации или создавать свой собственный архив ISO Bank.
Используя предварительно построенный бинар:
go install github.com/ovh/distronaut@latestЗдание из источника
make Используйте команду fetch , чтобы получить JSON из настроенных источников:
distronaut fetch -c config/sources.yml -f ' debian 'Вывод аналогичен ниже:
[
{
"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 "
}
}
]
}
]Дополнительные метаданные откидываются с DistowAch.com.
Этот пакет также может быть импортирован в другой кодовой базе 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 ))
}Откройте файл конфигурации и добавьте новую запись, содержащую:
name является дружелюбным именем для вашего нового источника (также может использоваться для фильтрации)url является исходным шаблоном URL -адреса:patterns - это карта, содержащая::* - это шаблоны режима, которые соответствуют определенному параметру маршрутаk<:name> Синтаксис.hash.* содержит все настройки, связанные с хеш.hash.file - это рисунок режима, соответствующий файлу, содержащему хэши.hash.pattern -это рисунок режима, захватывающий хэш из данного ISO (который можно обратно обратно с помощью k<iso> ).hash.algo - это название алгоритма хэш.meta.* содержит все настройки, связанные с метаданными.meta.source должен быть настроен на distrowatch (на данный момент поддерживается только источник метаданных).meta.id - дистрибутивная ручка на дистрибутивах.meta.version - это рисунок режима, соответствующий версии, как ее ссылаются на DistrowatchПример источника:
- 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+)Пожалуйста, прочитайте наши рекомендации по вкладу в первую очередь (ancoming.md).
Запустите тесты, используя:
make testСовместный сервер будет временно порожден на порту 3000, чтобы избежать выполнения реальных сетевых запросов.
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.