wheelchairy b6ea0e0f59 upd2
2025-02-04 18:30:33 +03:00

63 lines
1.6 KiB
Go

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)
}