diff --git a/cli/catalogue/catalogue.go b/cli/catalogue/catalogue.go index 3a5dc7d6..3aaebe09 100644 --- a/cli/catalogue/catalogue.go +++ b/cli/catalogue/catalogue.go @@ -94,7 +94,7 @@ keys configured on your account. Action: func(c *cli.Context) error { recipeName := c.Args().First() if recipeName != "" { - internal.ValidateRecipe(c) + internal.ValidateRecipe(c, true) } repos, err := recipe.ReadReposMetadata() diff --git a/cli/internal/validate.go b/cli/internal/validate.go index 56af1375..a41063fe 100644 --- a/cli/internal/validate.go +++ b/cli/internal/validate.go @@ -19,13 +19,19 @@ import ( var AppName string // ValidateRecipe ensures the recipe arg is valid. -func ValidateRecipe(c *cli.Context) recipe.Recipe { +func ValidateRecipe(c *cli.Context, ensureLatest bool) recipe.Recipe { recipeName := c.Args().First() if recipeName == "" { ShowSubcommandHelpAndError(c, errors.New("no recipe name provided")) } + if ensureLatest { + if err := recipe.EnsureLatest(recipeName); err != nil { + logrus.Fatal(err) + } + } + chosenRecipe, err := recipe.Get(recipeName) if err != nil { if c.Command.Name == "generate" { diff --git a/cli/recipe/lint.go b/cli/recipe/lint.go index a896352e..180597dc 100644 --- a/cli/recipe/lint.go +++ b/cli/recipe/lint.go @@ -24,7 +24,7 @@ var recipeLintCommand = cli.Command{ Before: internal.SubCommandBefore, BashComplete: autocomplete.RecipeNameComplete, Action: func(c *cli.Context) error { - recipe := internal.ValidateRecipe(c) + recipe := internal.ValidateRecipe(c, true) if err := recipePkg.EnsureUpToDate(recipe.Name); err != nil { logrus.Fatal(err) diff --git a/cli/recipe/version.go b/cli/recipe/version.go index 38ac84e3..a1c9a076 100644 --- a/cli/recipe/version.go +++ b/cli/recipe/version.go @@ -20,7 +20,7 @@ var recipeVersionCommand = cli.Command{ Before: internal.SubCommandBefore, BashComplete: autocomplete.RecipeNameComplete, Action: func(c *cli.Context) error { - recipe := internal.ValidateRecipe(c) + recipe := internal.ValidateRecipe(c, false) catalogue, err := recipePkg.ReadRecipeCatalogue() if err != nil {