diff --git a/cmd/ginie/main.go b/cmd/ginie/main.go index dc4108c..05544f1 100644 --- a/cmd/ginie/main.go +++ b/cmd/ginie/main.go @@ -41,6 +41,22 @@ func main() { fmt.Println("Repo hinzugefügt:", url) return + case "remove": + if len(os.Args) < 3 { + fmt.Println("Usage: ginie remove ") + 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 { diff --git a/internal/repos/repos.go b/internal/repos/repos.go index 60b00e5..d9069ec 100644 --- a/internal/repos/repos.go +++ b/internal/repos/repos.go @@ -103,6 +103,29 @@ func AddRepo(url string) error { return SaveRepos(repos) } +func RemoveRepo(url string) error { + repos, err := LoadRepos() + if err != nil { + return err + } + + index := -1 + for i, r := range repos { + if r.URL == url { + index = i + break + } + } + + if index == -1 { + return errors.New("Repo nicht gefunden") + } + + repos = append(repos[:index], repos[index+1:]...) + + return SaveRepos(repos) +} + func ListRepos() ([]Repo, error) { return LoadRepos() }