Files
ginie/cmd/ginie/main.go

124 lines
2.2 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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
}
}