distronaut
1.0.0
Spridnautは、インターネットを通過して流通ISOリンクとメタデータを見つけて、新しいリリースを監視したり、メディアを設置したり、独自のISOバンクアーカイブを構築しやすくするツールです。
事前に構築されたバイナリを使用してください:
go install github.com/ovh/distronaut@latestソースからの建物
makefetchコマンドを使用して、構成されたソースから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 "
}
}
]
}
]追加のメタデータは、distrowatch.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> syntaxを使用して戻ることができます.hash.*すべてのハッシュ関連設定が含まれています.hash.fileは、ハッシュを含むファイルに一致する正規表現パターンです.hash.patternは、特定のISOからハッシュをキャプチャするregexパターンです( k<iso>でバックリファレンスすることができます).hash.algoはハッシュアルゴリズムの名前です.meta.*すべてのメタデータ関連設定が含まれています.meta.source distrowatchに設定する必要があります(今のところサポートされているメタデータソースのみ).meta.idは、ディストリビューションのディストリビューションハンドルです.meta.versionは、ディストリビューションで参照されるバージョンに一致する正規表現パターンです例の例:
- 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+)最初に貢献ガイドラインをお読みください(Convinting.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.