Installierte Package Version wird ab jetzt erfasst.
This commit is contained in:
@@ -4,10 +4,9 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
|
"gitea.home.musaberdem.de/musabe24/ginie/internal/install"
|
||||||
"gitea.home.musaberdem.de/musabe24/ginie/internal/repos"
|
"gitea.home.musaberdem.de/musabe24/ginie/internal/repos"
|
||||||
"gitea.home.musaberdem.de/musabe24/ginie/internal/version"
|
"gitea.home.musaberdem.de/musabe24/ginie/internal/version"
|
||||||
"gitea.home.musaberdem.de/musabe24/ginie/internal/install"
|
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@@ -72,7 +71,11 @@ func main() {
|
|||||||
|
|
||||||
fmt.Println("Registrierte Repositories:")
|
fmt.Println("Registrierte Repositories:")
|
||||||
for _, r := range reposList {
|
for _, r := range reposList {
|
||||||
fmt.Printf("- %s/%s (%s)\n", r.Owner, r.Name, r.URL)
|
version := r.InstalledVersion
|
||||||
|
if version == "" {
|
||||||
|
version = "nicht installiert"
|
||||||
|
}
|
||||||
|
fmt.Printf("- %s/%s (%s) – Version: %s\n", r.Owner, r.Name, r.URL, version)
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -90,7 +93,6 @@ func main() {
|
|||||||
}
|
}
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
fmt.Println("Unbekannter Befehl:", cmd)
|
fmt.Println("Unbekannter Befehl:", cmd)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -123,6 +123,11 @@ func Install(pkg string) error {
|
|||||||
return errors.New("Release hat keine Assets")
|
return errors.New("Release hat keine Assets")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
installedVersion := release.TagName
|
||||||
|
if installedVersion == "" {
|
||||||
|
installedVersion = version
|
||||||
|
}
|
||||||
|
|
||||||
// Asset-Auswahl
|
// Asset-Auswahl
|
||||||
fmt.Println("Verfügbare Assets:")
|
fmt.Println("Verfügbare Assets:")
|
||||||
for i, a := range release.Assets {
|
for i, a := range release.Assets {
|
||||||
@@ -167,17 +172,25 @@ func Install(pkg string) error {
|
|||||||
cmd := exec.Command("sudo", "dpkg", "-i", asset.Name)
|
cmd := exec.Command("sudo", "dpkg", "-i", asset.Name)
|
||||||
cmd.Stdout = os.Stdout
|
cmd.Stdout = os.Stdout
|
||||||
cmd.Stderr = os.Stderr
|
cmd.Stderr = os.Stderr
|
||||||
|
// Run the install command
|
||||||
err := cmd.Run()
|
err := cmd.Run()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("Package konnte nicht installiert werden.")
|
fmt.Println("Package konnte nicht installiert werden.")
|
||||||
}
|
}
|
||||||
|
// Remove debian package file
|
||||||
err = os.Remove(asset.Name)
|
err = os.Remove(asset.Name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("Package konnte nicht gelöscht werden.")
|
fmt.Println("Package konnte nicht gelöscht werden.")
|
||||||
}
|
}
|
||||||
|
if installedVersion == "" {
|
||||||
|
installedVersion = "unknown"
|
||||||
|
}
|
||||||
|
if err := repos.SetInstalledVersion(repo.Name, installedVersion); err != nil {
|
||||||
|
fmt.Println("Speichern der installierten Version nicht möglich.")
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
return errors.New("Asset-Typ wird noch nicht unterstützt")
|
return errors.New("Asset-Typ wird noch nicht unterstützt")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ type Repo struct {
|
|||||||
URL string `json:"url"`
|
URL string `json:"url"`
|
||||||
Owner string `json:"owner"`
|
Owner string `json:"owner"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
|
InstalledVersion string `json:"installed_version,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func configPath() (string, error) {
|
func configPath() (string, error) {
|
||||||
@@ -129,3 +130,25 @@ func RemoveRepo(url string) error {
|
|||||||
func ListRepos() ([]Repo, error) {
|
func ListRepos() ([]Repo, error) {
|
||||||
return LoadRepos()
|
return LoadRepos()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func SetInstalledVersion(name string, version string) error {
|
||||||
|
repos, err := LoadRepos()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
updated := false
|
||||||
|
for i := range repos {
|
||||||
|
if repos[i].Name == name {
|
||||||
|
repos[i].InstalledVersion = version
|
||||||
|
updated = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if !updated {
|
||||||
|
return errors.New("Repo nicht gefunden")
|
||||||
|
}
|
||||||
|
|
||||||
|
return SaveRepos(repos)
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user