Assets werden automatisch nach .deb gefiltert.

This commit is contained in:
2025-11-18 21:30:14 +01:00
parent a2b7e3f528
commit f460a78993

View File

@@ -21,6 +21,11 @@ type Installed struct {
AssetURL string `json:"url"` AssetURL string `json:"url"`
} }
type releaseAsset struct {
Name string `json:"name"`
BrowserDownloadURL string `json:"browser_download_url"`
}
func configPath() (string, error) { func configPath() (string, error) {
home, err := os.UserHomeDir() home, err := os.UserHomeDir()
if err != nil { if err != nil {
@@ -109,10 +114,7 @@ func Install(pkg string) error {
var release struct { var release struct {
TagName string `json:"tag_name"` TagName string `json:"tag_name"`
Assets []struct { Assets []releaseAsset `json:"assets"`
Name string `json:"name"`
BrowserDownloadURL string `json:"browser_download_url"`
} `json:"assets"`
} }
if err := json.NewDecoder(resp.Body).Decode(&release); err != nil { if err := json.NewDecoder(resp.Body).Decode(&release); err != nil {
@@ -128,9 +130,20 @@ func Install(pkg string) error {
installedVersion = version installedVersion = version
} }
var debAssets []releaseAsset
for _, a := range release.Assets {
if strings.HasSuffix(strings.ToLower(a.Name), ".deb") {
debAssets = append(debAssets, a)
}
}
if len(debAssets) == 0 {
return errors.New("Release enthält keine .deb Assets")
}
// Asset-Auswahl // Asset-Auswahl
fmt.Println("Verfügbare Assets:") fmt.Println("Verfügbare Assets:")
for i, a := range release.Assets { for i, a := range debAssets {
fmt.Printf("[%d] %s\n", i, a.Name) fmt.Printf("[%d] %s\n", i, a.Name)
} }
@@ -138,11 +151,11 @@ func Install(pkg string) error {
var choice int var choice int
fmt.Scan(&choice) fmt.Scan(&choice)
if choice < 0 || choice >= len(release.Assets) { if choice < 0 || choice >= len(debAssets) {
return errors.New("Ungültige Auswahl") return errors.New("Ungültige Auswahl")
} }
asset := release.Assets[choice] asset := debAssets[choice]
// Datei herunterladen // Datei herunterladen
fmt.Println("Lade herunter:", asset.Name) fmt.Println("Lade herunter:", asset.Name)