From 06cc5d1cc39ad322013e553fc3970d3cc9788098 Mon Sep 17 00:00:00 2001 From: cellarspoon Date: Mon, 27 Dec 2021 04:07:52 +0100 Subject: [PATCH] fix: only update when really needed --- cli/app/rollback.go | 4 ++++ cli/app/upgrade.go | 4 ++++ cli/internal/deploy.go | 4 ++++ cli/internal/new.go | 5 +++++ cli/internal/validate.go | 12 ------------ cli/recipe/lint.go | 5 +++++ 6 files changed, 22 insertions(+), 12 deletions(-) diff --git a/cli/app/rollback.go b/cli/app/rollback.go index 506dcc96..00953a47 100644 --- a/cli/app/rollback.go +++ b/cli/app/rollback.go @@ -46,6 +46,10 @@ recipes. app := internal.ValidateApp(c) stackName := app.StackName() + if err := recipe.EnsureUpToDate(app.Type); err != nil { + logrus.Fatal(err) + } + r, err := recipe.Get(app.Type) if err != nil { logrus.Fatal(err) diff --git a/cli/app/upgrade.go b/cli/app/upgrade.go index e9bfeed1..4a0af80e 100644 --- a/cli/app/upgrade.go +++ b/cli/app/upgrade.go @@ -50,6 +50,10 @@ recipes. app := internal.ValidateApp(c) stackName := app.StackName() + if err := recipe.EnsureUpToDate(app.Type); err != nil { + logrus.Fatal(err) + } + r, err := recipe.Get(app.Type) if err != nil { logrus.Fatal(err) diff --git a/cli/internal/deploy.go b/cli/internal/deploy.go index 0a9d4d8a..358ee3cb 100644 --- a/cli/internal/deploy.go +++ b/cli/internal/deploy.go @@ -23,6 +23,10 @@ func DeployAction(c *cli.Context) error { app := ValidateApp(c) stackName := app.StackName() + if err := recipe.EnsureUpToDate(app.Type); err != nil { + logrus.Fatal(err) + } + r, err := recipe.Get(app.Type) if err != nil { logrus.Fatal(err) diff --git a/cli/internal/new.go b/cli/internal/new.go index 325b1e24..54a19600 100644 --- a/cli/internal/new.go +++ b/cli/internal/new.go @@ -7,6 +7,7 @@ import ( abraFormatter "coopcloud.tech/abra/cli/formatter" "coopcloud.tech/abra/pkg/config" "coopcloud.tech/abra/pkg/recipe" + recipePkg "coopcloud.tech/abra/pkg/recipe" "coopcloud.tech/abra/pkg/secret" "coopcloud.tech/abra/pkg/ssh" "github.com/AlecAivazis/survey/v2" @@ -111,6 +112,10 @@ func ensureAppNameFlag() error { func NewAction(c *cli.Context) error { recipe := ValidateRecipeWithPrompt(c) + if err := recipePkg.EnsureUpToDate(recipe.Name); err != nil { + logrus.Fatal(err) + } + if err := ensureServerFlag(); err != nil { logrus.Fatal(err) } diff --git a/cli/internal/validate.go b/cli/internal/validate.go index 6d257723..0e202ba2 100644 --- a/cli/internal/validate.go +++ b/cli/internal/validate.go @@ -37,10 +37,6 @@ func ValidateRecipe(c *cli.Context) recipe.Recipe { } } - if err := recipe.EnsureUpToDate(recipeName); err != nil { - logrus.Fatal(err) - } - logrus.Debugf("validated %s as recipe argument", recipeName) return chosenRecipe @@ -102,10 +98,6 @@ func ValidateRecipeWithPrompt(c *cli.Context) recipe.Recipe { logrus.Fatal(err) } - if err := recipe.EnsureUpToDate(chosenRecipe.Name); err != nil { - logrus.Fatal(err) - } - logrus.Debugf("validated %s as recipe argument", recipeName) return chosenRecipe @@ -133,10 +125,6 @@ func ValidateApp(c *cli.Context) config.App { logrus.Fatal(err) } - if err := recipe.EnsureUpToDate(app.Type); err != nil { - logrus.Fatal(err) - } - if err := ssh.EnsureHostKey(app.Server); err != nil { logrus.Fatal(err) } diff --git a/cli/recipe/lint.go b/cli/recipe/lint.go index fad3829d..361f42d9 100644 --- a/cli/recipe/lint.go +++ b/cli/recipe/lint.go @@ -7,6 +7,7 @@ import ( "coopcloud.tech/abra/cli/internal" "coopcloud.tech/abra/pkg/autocomplete" "coopcloud.tech/abra/pkg/lint" + recipePkg "coopcloud.tech/abra/pkg/recipe" "github.com/sirupsen/logrus" "github.com/urfave/cli/v2" ) @@ -21,6 +22,10 @@ var recipeLintCommand = &cli.Command{ Action: func(c *cli.Context) error { recipe := internal.ValidateRecipe(c) + if err := recipePkg.EnsureUpToDate(recipe.Name); err != nil { + logrus.Fatal(err) + } + tableCol := []string{"ref", "rule", "satisfied", "severity", "resolve"} table := formatter.CreateTable(tableCol)