diff --git a/cli/internal/validate.go b/cli/internal/validate.go index 5ecbbcacb..05a38d883 100644 --- a/cli/internal/validate.go +++ b/cli/internal/validate.go @@ -11,8 +11,8 @@ import ( "github.com/urfave/cli/v2" ) -// ValidateRecipeArg ensures the recipe arg is valid. -func ValidateRecipeArg(c *cli.Context) string { +// ValidateRecipe ensures the recipe arg is valid. +func ValidateRecipe(c *cli.Context) string { recipeName := c.Args().First() if recipeName == "" { @@ -21,6 +21,7 @@ func ValidateRecipeArg(c *cli.Context) string { if err := recipe.EnsureExists(recipeName); err != nil { logrus.Fatal(err) + os.Exit(1) } return recipeName diff --git a/cli/recipe/create.go b/cli/recipe/create.go index 9b01234bf..f68f23d2a 100644 --- a/cli/recipe/create.go +++ b/cli/recipe/create.go @@ -1,7 +1,6 @@ package recipe import ( - "errors" "fmt" "os" "path" @@ -20,10 +19,7 @@ var recipeCreateCommand = &cli.Command{ Aliases: []string{"c"}, ArgsUsage: "", Action: func(c *cli.Context) error { - recipe := c.Args().First() - if recipe == "" { - internal.ShowSubcommandHelpAndError(c, errors.New("no recipe provided")) - } + recipe := internal.ValidateRecipe(c) directory := path.Join(config.APPS_DIR, recipe) if _, err := os.Stat(directory); !os.IsNotExist(err) { diff --git a/cli/recipe/lint.go b/cli/recipe/lint.go index d4e1e72f3..248c322f1 100644 --- a/cli/recipe/lint.go +++ b/cli/recipe/lint.go @@ -23,7 +23,7 @@ var recipeLintCommand = &cli.Command{ Aliases: []string{"l"}, ArgsUsage: "", Action: func(c *cli.Context) error { - recipe := internal.ValidateRecipeArg(c) + recipe := internal.ValidateRecipe(c) pattern := fmt.Sprintf("%s/%s/compose**yml", config.APPS_DIR, recipe) composeFiles, err := filepath.Glob(pattern) diff --git a/cli/recipe/list.go b/cli/recipe/list.go index 345772f89..919c3db18 100644 --- a/cli/recipe/list.go +++ b/cli/recipe/list.go @@ -19,16 +19,21 @@ var recipeListCommand = &cli.Command{ if err != nil { logrus.Fatal(err.Error()) } + recipes := catl.Flatten() sort.Sort(catalogue.ByRecipeName(recipes)) + tableCol := []string{"Name", "Category", "Status"} table := formatter.CreateTable(tableCol) + for _, recipe := range recipes { status := fmt.Sprintf("%v", recipe.Features.Status) tableRow := []string{recipe.Name, recipe.Category, status} table.Append(tableRow) } + table.Render() + return nil }, } diff --git a/cli/recipe/sync.go b/cli/recipe/sync.go index 46c6db883..c4eb4ff0c 100644 --- a/cli/recipe/sync.go +++ b/cli/recipe/sync.go @@ -28,7 +28,7 @@ the versioning metadata of up-and-running containers are. `, ArgsUsage: "", Action: func(c *cli.Context) error { - recipe := internal.ValidateRecipeArg(c) + recipe := internal.ValidateRecipe(c) appFiles, err := config.LoadAppFiles("") if err != nil { diff --git a/cli/recipe/upgrade.go b/cli/recipe/upgrade.go index f340e623f..260600f7c 100644 --- a/cli/recipe/upgrade.go +++ b/cli/recipe/upgrade.go @@ -35,7 +35,7 @@ This is step 1 of upgrading a recipe. Step 2 is running "abra recipe sync `, ArgsUsage: "", Action: func(c *cli.Context) error { - recipe := internal.ValidateRecipeArg(c) + recipe := internal.ValidateRecipe(c) appFiles, err := config.LoadAppFiles("") if err != nil { diff --git a/cli/recipe/version.go b/cli/recipe/version.go index 2bb0f8846..56f8be2ff 100644 --- a/cli/recipe/version.go +++ b/cli/recipe/version.go @@ -14,7 +14,7 @@ var recipeVersionCommand = &cli.Command{ Aliases: []string{"v"}, ArgsUsage: "", Action: func(c *cli.Context) error { - recipe := internal.ValidateRecipeArg(c) + recipe := internal.ValidateRecipe(c) catalogue, err := catalogue.ReadRecipeCatalogue() if err != nil { diff --git a/pkg/config/app.go b/pkg/config/app.go index f07ec2495..4f0f4862e 100644 --- a/pkg/config/app.go +++ b/pkg/config/app.go @@ -157,7 +157,7 @@ func LoadAppFiles(servers ...string) (AppFiles, error) { func GetApp(apps AppFiles, name AppName) (App, error) { appFile, exists := apps[name] if !exists { - return App{}, fmt.Errorf("cannot find app file with name '%s'", name) + return App{}, fmt.Errorf("cannot find app with name '%s'", name) } app, err := readAppEnvFile(appFile, name) if err != nil {