63 lines
1.6 KiB
Go
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)
|
|
} |