diff --git a/cli/app.go b/cli/app.go index fba93203..ee42b0f2 100644 --- a/cli/app.go +++ b/cli/app.go @@ -53,10 +53,10 @@ var appListCommand = &cli.Command{ Aliases: []string{"ls"}, Flags: []cli.Flag{StatusFlag, ServerFlag, TypeFlag}, Action: func(c *cli.Context) error { - // FIXME: Needs to use flags + // FIXME: Needs status flag implementing // TODO: Sorting of output to make servers in alphabetical // Looks like sorting a 2d slice of strings might be messy though - apps, err := config.LoadAppFiles() + apps, err := config.LoadAppFiles(Server) if err != nil { logrus.Fatal(err) } @@ -67,8 +67,12 @@ var appListCommand = &cli.Command{ if err != nil { logrus.Fatal(err.Error()) } - tableRow := []string{name, app.Type, appFile.Server} - table.Append(tableRow) + if app.Type == Type || Type == "" { + // If type flag is set, check for it, if not, Type == "" + tableRow := []string{name, app.Type, appFile.Server} + table.Append(tableRow) + } + } table.Render() return nil diff --git a/config/env.go b/config/env.go index 4d9da42f..5b100dde 100644 --- a/config/env.go +++ b/config/env.go @@ -34,11 +34,15 @@ type AppFile struct { type AppFiles = map[AppName]AppFile -func LoadAppFiles() (AppFiles, error) { +func LoadAppFiles(servers ...string) (AppFiles, error) { appFiles := make(AppFiles) - servers, err := getAllFoldersInDirectory(ABRA_SERVER_FOLDER) - if err != nil { - return nil, err + if len(servers) == 1 && servers[0] == "" { + // Empty servers flag, one string will always be passed + var err error + servers, err = getAllFoldersInDirectory(ABRA_SERVER_FOLDER) + if err != nil { + return nil, err + } } for _, server := range servers { serverDir := path.Join(ABRA_SERVER_FOLDER, server)