124 lines
2.2 KiB
Go
124 lines
2.2 KiB
Go
package main
|
||
|
||
import (
|
||
"fmt"
|
||
"os"
|
||
|
||
"gitea.home.musaberdem.de/musabe24/ginie/internal/install"
|
||
"gitea.home.musaberdem.de/musabe24/ginie/internal/repos"
|
||
"gitea.home.musaberdem.de/musabe24/ginie/internal/version"
|
||
)
|
||
|
||
func main() {
|
||
if len(os.Args) < 2 {
|
||
fmt.Println("Ginie – Git Native Installer Engine")
|
||
fmt.Println("Usage: ginie <command> [arguments]")
|
||
return
|
||
}
|
||
|
||
cmd := os.Args[1]
|
||
|
||
switch cmd {
|
||
|
||
case "--version", "-v":
|
||
fmt.Println("ginie version", version.Version)
|
||
return
|
||
|
||
case "add":
|
||
if len(os.Args) < 3 {
|
||
fmt.Println("Usage: ginie add <GitHub-URL>")
|
||
return
|
||
}
|
||
url := os.Args[2]
|
||
|
||
err := repos.AddRepo(url)
|
||
if err != nil {
|
||
fmt.Println("Fehler:", err)
|
||
return
|
||
}
|
||
|
||
fmt.Println("Repo hinzugefügt:", url)
|
||
return
|
||
|
||
case "remove":
|
||
if len(os.Args) < 3 {
|
||
fmt.Println("Usage: ginie remove <GitHub-URL>")
|
||
return
|
||
}
|
||
url := os.Args[2]
|
||
|
||
err := repos.RemoveRepo(url)
|
||
if err != nil {
|
||
fmt.Println("Fehler:", err)
|
||
return
|
||
}
|
||
|
||
fmt.Println("Repo entfernt:", url)
|
||
return
|
||
|
||
case "list":
|
||
reposList, err := repos.ListRepos()
|
||
if err != nil {
|
||
fmt.Println("Fehler beim Laden:", err)
|
||
return
|
||
}
|
||
|
||
if len(reposList) == 0 {
|
||
fmt.Println("Noch keine Repositories hinzugefügt. Nutze:")
|
||
fmt.Println(" ginie add <GitHub-URL>")
|
||
return
|
||
}
|
||
|
||
fmt.Println("Registrierte Repositories:")
|
||
for _, r := range reposList {
|
||
version := r.InstalledVersion
|
||
if version == "" {
|
||
version = "nicht installiert"
|
||
}
|
||
fmt.Printf("- %s/%s (%s) – Version: %s\n", r.Owner, r.Name, r.URL, version)
|
||
}
|
||
return
|
||
|
||
case "install":
|
||
if len(os.Args) < 3 {
|
||
fmt.Println("Usage: ginie install <name[:version]>")
|
||
return
|
||
}
|
||
target := os.Args[2]
|
||
|
||
err := install.Install(target)
|
||
if err != nil {
|
||
fmt.Println("Fehler:", err)
|
||
return
|
||
}
|
||
return
|
||
|
||
case "update":
|
||
if len(os.Args) < 3 {
|
||
fmt.Println("Usage: ginie update <name|--all>")
|
||
return
|
||
}
|
||
target := os.Args[2]
|
||
|
||
if target == "--all" {
|
||
err := install.UpdateAll()
|
||
if err != nil {
|
||
fmt.Println("Fehler:", err)
|
||
return
|
||
}
|
||
return
|
||
}
|
||
|
||
err := install.Update(target)
|
||
if err != nil {
|
||
fmt.Println("Fehler:", err)
|
||
return
|
||
}
|
||
return
|
||
|
||
default:
|
||
fmt.Println("Unbekannter Befehl:", cmd)
|
||
return
|
||
}
|
||
}
|