From 3bc612c44e6c9d6806ecc6cc9e4cee1296b13794 Mon Sep 17 00:00:00 2001 From: decentral1se Date: Mon, 26 Jul 2021 20:59:17 +0200 Subject: [PATCH] WIP: status lookup for apps listing --- cli/app.go | 23 +++++++++++++++++++---- config/env.go | 8 ++++++++ 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/cli/app.go b/cli/app.go index 53018c44..fea1c7c9 100644 --- a/cli/app.go +++ b/cli/app.go @@ -52,23 +52,38 @@ var appRestoreCommand = &cli.Command{ var appListCommand = &cli.Command{ Name: "list", Aliases: []string{"ls"}, - Flags: []cli.Flag{StatusFlag, ServerFlag, TypeFlag}, // FIXME: implement flags + Flags: []cli.Flag{StatusFlag, ServerFlag, TypeFlag}, Action: func(c *cli.Context) error { appFiles, err := config.LoadAppFiles(Server) if err != nil { logrus.Fatal(err) } - apps, err := config.GetApps(appFiles) - sort.Sort(config.ByServerAndType(apps)) + tableCol := []string{"Server", "Type", "Domain"} + if Status { + tableCol = []string{"Server", "Type", "Domain", "Status"} + } table := createTable(tableCol) table.SetAutoMergeCellsByColumnIndex([]int{0}) + + apps, err := config.GetApps(appFiles) + sort.Sort(config.ByServerAndType(apps)) for _, app := range apps { + var tableRow []string if app.Type == Type || Type == "" { // If type flag is set, check for it, if not, Type == "" - table.Append([]string{app.File.Server, app.Type, app.Domain}) + tableRow = []string{app.File.Server, app.Type, app.Domain} } + if Status { + status, err := app.GetStatus() + if err != nil { + logrus.Fatal(err) + } + tableRow = []string{app.File.Server, app.Type, app.Domain, status} + } + table.Append(tableRow) } + table.Render() return nil }, diff --git a/config/env.go b/config/env.go index ca596b0e..4e3dd47c 100644 --- a/config/env.go +++ b/config/env.go @@ -24,6 +24,10 @@ var REPOS_BASE_URL = "https://git.coopcloud.tech/coop-cloud" type AppEnv = map[string]string type AppName = string +type AppStatus struct { + Deployed bool +} + type App struct { Name AppName Type string @@ -32,6 +36,10 @@ type App struct { File AppFile } +func (a App) GetStatus() (string, error) { + return "unknown", nil +} + type ByServer []App func (a ByServer) Len() int { return len(a) }