package server import ( "strings" "coopcloud.tech/abra/cli/formatter" "coopcloud.tech/abra/pkg/client" "coopcloud.tech/abra/pkg/config" "github.com/sirupsen/logrus" "github.com/urfave/cli/v2" ) var serverListCommand = &cli.Command{ Name: "list", Aliases: []string{"ls"}, Usage: "List managed servers", ArgsUsage: " ", HideHelp: true, Action: func(c *cli.Context) error { dockerContextStore := client.NewDefaultDockerContextStore() contexts, err := dockerContextStore.Store.List() if err != nil { logrus.Fatal(err) } tableColumns := []string{"Name", "Connection"} table := formatter.CreateTable(tableColumns) defer table.Render() serverNames, err := config.ReadServerNames() if err != nil { logrus.Fatal(err) } for _, serverName := range serverNames { var row []string for _, ctx := range contexts { endpoint, err := client.GetContextEndpoint(ctx) if err != nil && strings.Contains(err.Error(), "does not exist") { // No local context found, we can continue safely continue } if ctx.Name == serverName { row = []string{serverName, endpoint} } } if len(row) == 0 { row = []string{serverName, "UNKNOWN"} } table.Append(row) } return nil }, }