46 lines
1.1 KiB
Go
46 lines
1.1 KiB
Go
package cmd
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"fmt"
|
|
|
|
"git.faercol.me/faercol/polyculeconnect/polyculeconnect/cmd/utils"
|
|
"git.faercol.me/faercol/polyculeconnect/polyculeconnect/internal/db"
|
|
"github.com/dexidp/dex/storage"
|
|
"github.com/google/uuid"
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
var backendRemoveCmd = &cobra.Command{
|
|
Use: "remove <backend_id>",
|
|
Short: "Remove a backend",
|
|
Long: `Remove the backend with the given ID from the database.`,
|
|
Args: cobra.ExactArgs(1),
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
removeBackend(args[0])
|
|
},
|
|
}
|
|
|
|
func removeBackend(backendIDStr string) {
|
|
backendID, err := uuid.Parse(backendIDStr)
|
|
if err != nil {
|
|
utils.Failf("Invalid UUID format: %s", err.Error())
|
|
}
|
|
|
|
s, err := db.New(*utils.InitConfig(""))
|
|
if err != nil {
|
|
utils.Failf("Failed to init storage: %s", err.Error())
|
|
}
|
|
|
|
if err := s.BackendStorage().DeleteBackend(context.Background(), backendID); err != nil {
|
|
if !errors.Is(err, storage.ErrNotFound) {
|
|
utils.Failf("Failed to remove backend: %s", err.Error())
|
|
}
|
|
}
|
|
fmt.Println("Backend deleted")
|
|
}
|
|
|
|
func init() {
|
|
backendCmd.AddCommand(backendRemoveCmd)
|
|
}
|