diff --git a/cli/cli.go b/cli/cli.go index 3da74228..e338d390 100644 --- a/cli/cli.go +++ b/cli/cli.go @@ -14,8 +14,8 @@ import ( "coopcloud.tech/abra/cli/recipe" "coopcloud.tech/abra/cli/server" "coopcloud.tech/abra/pkg/autocomplete" + cataloguePkg "coopcloud.tech/abra/pkg/catalogue" "coopcloud.tech/abra/pkg/config" - "coopcloud.tech/abra/pkg/git" "coopcloud.tech/abra/pkg/web" "github.com/sirupsen/logrus" "github.com/urfave/cli" @@ -184,12 +184,8 @@ func newAbraApp(version, commit string) *cli.App { } } - if _, err := os.Stat(config.CATALOGUE_DIR); os.IsNotExist(err) { - url := fmt.Sprintf("%s/%s.git", config.REPOS_BASE_URL, config.CATALOGUE_JSON_REPO_NAME) - logrus.Warnf("local recipe catalogue is missing, retrieving now") - if err := git.Clone(config.CATALOGUE_DIR, url); err != nil { - logrus.Fatal(err) - } + if err := cataloguePkg.EnsureCatalogue(); err != nil { + logrus.Fatal(err) } logrus.Debugf("abra version %s, commit %s", version, commit) diff --git a/pkg/catalogue/catalogue.go b/pkg/catalogue/catalogue.go index 413aec61..1b108670 100644 --- a/pkg/catalogue/catalogue.go +++ b/pkg/catalogue/catalogue.go @@ -56,6 +56,7 @@ var CatalogueSkipList = map[string]bool{ func EnsureCatalogue() error { catalogueDir := path.Join(config.ABRA_DIR, "catalogue") if _, err := os.Stat(catalogueDir); err != nil && os.IsNotExist(err) { + logrus.Warnf("local recipe catalogue is missing, retrieving now") url := fmt.Sprintf("%s/%s.git", config.REPOS_BASE_URL, config.CATALOGUE_JSON_REPO_NAME) if err := gitPkg.Clone(catalogueDir, url); err != nil { return err diff --git a/pkg/recipe/recipe_test.go b/pkg/recipe/recipe_test.go index 59a57ebc..fb0f29ae 100644 --- a/pkg/recipe/recipe_test.go +++ b/pkg/recipe/recipe_test.go @@ -3,10 +3,15 @@ package recipe import ( "testing" + "coopcloud.tech/abra/pkg/catalogue" "github.com/stretchr/testify/assert" ) func TestGetVersionLabelLocalDoesNotUseTimeoutLabel(t *testing.T) { + if err := catalogue.EnsureCatalogue(); err != nil { + t.Fatal(err) + } + offline := true recipe, err := Get("traefik", offline) if err != nil { diff --git a/pkg/secret/secret_test.go b/pkg/secret/secret_test.go index 443b3bab..82dd200c 100644 --- a/pkg/secret/secret_test.go +++ b/pkg/secret/secret_test.go @@ -4,6 +4,7 @@ import ( "path" "testing" + "coopcloud.tech/abra/pkg/catalogue" "coopcloud.tech/abra/pkg/config" "coopcloud.tech/abra/pkg/recipe" "coopcloud.tech/abra/pkg/upstream/stack" @@ -12,6 +13,10 @@ import ( ) func TestReadSecretsConfig(t *testing.T) { + if err := catalogue.EnsureCatalogue(); err != nil { + t.Fatal(err) + } + offline := true recipe, err := recipe.Get("matrix-synapse", offline) if err != nil {