package cmd import ( "fmt" "os" "train/pkg/config" "github.com/spf13/cobra" ) var repoCmd = &cobra.Command{ Use: "repo", Short: "Управление репозиториями пакетов", } var repoAddCmd = &cobra.Command{ Use: "add [url]", Short: "Добавляет новый репозиторий", Args: cobra.ExactArgs(1), Run: func(cmd *cobra.Command, args []string) { url := args[0] if err := config.AddRepository(url); err != nil { fmt.Printf("Ошибка: %v\n", err) os.Exit(1) } fmt.Printf("Репозиторий %s успешно добавлен.\n", url) }, } var repoRemoveCmd = &cobra.Command{ Use: "remove [url]", Short: "Удаляет репозиторий", Args: cobra.ExactArgs(1), Run: func(cmd *cobra.Command, args []string) { url := args[0] if err := config.RemoveRepository(url); err != nil { fmt.Printf("Ошибка: %v\n", err) os.Exit(1) } fmt.Printf("Репозиторий %s успешно удалён.\n", url) }, } var repoListCmd = &cobra.Command{ Use: "list", Short: "Список добавленных репозиториев", Run: func(cmd *cobra.Command, args []string) { cfg, err := config.LoadConfig() if err != nil { fmt.Printf("Ошибка загрузки конфигурации: %v\n", err) os.Exit(1) } fmt.Println("Добавленные репозитории:") for _, r := range cfg.Repositories { fmt.Println(" -", r) } }, } func init() { repoCmd.AddCommand(repoAddCmd) repoCmd.AddCommand(repoRemoveCmd) repoCmd.AddCommand(repoListCmd) }