diff --git a/cli/internal/validate.go b/cli/internal/validate.go index 933e7add..2ea6cd47 100644 --- a/cli/internal/validate.go +++ b/cli/internal/validate.go @@ -17,34 +17,34 @@ func ValidateRecipe(args []string, cmdName string) recipe.Recipe { recipeName = args[0] } - if recipeName == "" && !NoInput { - var recipes []string + var recipes []string - catl, err := recipe.ReadRecipeCatalogue(Offline) - if err != nil { - log.Fatal(err) - } + catl, err := recipe.ReadRecipeCatalogue(Offline) + if err != nil { + log.Fatal(err) + } - knownRecipes := make(map[string]bool) - for name := range catl { - knownRecipes[name] = true - } + knownRecipes := make(map[string]bool) + for name := range catl { + knownRecipes[name] = true + } - localRecipes, err := recipe.GetRecipesLocal() - if err != nil { - log.Debugf("can't read local recipes: %s", err) - } else { - for _, recipeLocal := range localRecipes { - if _, ok := knownRecipes[recipeLocal]; !ok { - knownRecipes[recipeLocal] = true - } + localRecipes, err := recipe.GetRecipesLocal() + if err != nil { + log.Debugf("can't read local recipes: %s", err) + } else { + for _, recipeLocal := range localRecipes { + if _, ok := knownRecipes[recipeLocal]; !ok { + knownRecipes[recipeLocal] = true } } + } - for recipeName := range knownRecipes { - recipes = append(recipes, recipeName) - } + for recipeName := range knownRecipes { + recipes = append(recipes, recipeName) + } + if recipeName == "" && !NoInput { prompt := &survey.Select{ Message: "Select recipe", Options: recipes, @@ -58,11 +58,15 @@ func ValidateRecipe(args []string, cmdName string) recipe.Recipe { log.Fatal("no recipe name provided") } + if _, ok := knownRecipes[recipeName]; !ok { + log.Fatalf("no recipe '%s' exists?", recipeName) + } + chosenRecipe := recipe.Get(recipeName) - err := chosenRecipe.EnsureExists() - if err != nil { + if err := chosenRecipe.EnsureExists(); err != nil { log.Fatal(err) } + _, err = chosenRecipe.GetComposeConfig(nil) if err != nil { if cmdName == "generate" {