WIP: status lookup for apps listing

This commit is contained in:
decentral1se 2021-07-26 20:59:17 +02:00
parent 2c83113040
commit 3bc612c44e
No known key found for this signature in database
GPG Key ID: 5E2EF5A63E3718CC
2 changed files with 27 additions and 4 deletions

View File

@ -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
},

View File

@ -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) }