diff --git a/cli/app/ps.go b/cli/app/ps.go index 91b4db2f..a6dd949e 100644 --- a/cli/app/ps.go +++ b/cli/app/ps.go @@ -8,11 +8,13 @@ import ( "coopcloud.tech/abra/cli/internal" "coopcloud.tech/abra/pkg/autocomplete" "coopcloud.tech/abra/pkg/client" + "coopcloud.tech/abra/pkg/config" stack "coopcloud.tech/abra/pkg/upstream/stack" "github.com/buger/goterm" "github.com/docker/cli/cli/command/formatter" "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/filters" + dockerClient "github.com/docker/docker/client" "github.com/sirupsen/logrus" "github.com/urfave/cli/v2" ) @@ -27,15 +29,31 @@ var appPsCommand = &cli.Command{ }, BashComplete: autocomplete.AppNameComplete, Action: func(c *cli.Context) error { + app := internal.ValidateApp(c) + + cl, err := client.New(app.Server) + if err != nil { + logrus.Fatal(err) + } + + isDeployed, _, err := stack.IsDeployed(c.Context, cl, app.StackName()) + if err != nil { + logrus.Fatal(err) + } + + if !isDeployed { + logrus.Fatalf("%s is not deployed?", app.Name) + } + if !internal.Watch { - showPSOutput(c) + showPSOutput(c, app, cl) return nil } goterm.Clear() for { goterm.MoveCursor(1, 1) - showPSOutput(c) + showPSOutput(c, app, cl) goterm.Flush() time.Sleep(2 * time.Second) } @@ -43,23 +61,7 @@ var appPsCommand = &cli.Command{ } // showPSOutput renders ps output. -func showPSOutput(c *cli.Context) { - app := internal.ValidateApp(c) - - cl, err := client.New(app.Server) - if err != nil { - logrus.Fatal(err) - } - - isDeployed, _, err := stack.IsDeployed(c.Context, cl, app.StackName()) - if err != nil { - logrus.Fatal(err) - } - - if !isDeployed { - logrus.Fatalf("%s is not deployed?", app.Name) - } - +func showPSOutput(c *cli.Context, app config.App, cl *dockerClient.Client) { filters := filters.NewArgs() filters.Add("name", app.StackName())