diff --git a/cli/server.go b/cli/server.go index 2405507..bddcfba 100644 --- a/cli/server.go +++ b/cli/server.go @@ -2,6 +2,10 @@ package cli import ( "fmt" + "io/ioutil" + "os" + "os/exec" + "log" "github.com/urfave/cli/v2" ) @@ -12,6 +16,27 @@ var serverListCommand = &cli.Command{ Usage: "List locally-defined servers.", ArgsUsage: emptyArgsUsage, HideHelp: true, + Action: func(c *cli.Context) error { + abradir := os.Getenv("HOME") + "/.abra" + + servers, err := ioutil.ReadDir(abradir + "/servers") + if err != nil { + log.Fatal(err) + } + fmt.Println("\033[33mLoading status from", len(servers), "server(s), patience advised...\033[0m") + fmt.Println(len(servers), "servers:\n") + fmt.Println(" NAME\tCONNECTION") + fmt.Println(" --\t--") + for _, s := range servers { + conn, err := exec.Command("docker", "context", "inspect", s.Name(), "-f", "{{.Endpoints.docker.Host}}").Output() + if err != nil { + log.Fatal(err) + } + fmt.Printf(" %s\t%s\n", s.Name(), string(conn)) + } + + return nil + }, } var serverAddCommand = &cli.Command{