From b68547b2c2470c8f4ce55840396244a454904fa7 Mon Sep 17 00:00:00 2001 From: decentral1se Date: Mon, 11 Oct 2021 01:06:51 +0200 Subject: [PATCH] fix: dont overwrite generated catalogue Closes https://git.coopcloud.tech/coop-cloud/organising/issues/190. --- cli/catalogue/generate.go | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/cli/catalogue/generate.go b/cli/catalogue/generate.go index 37c9bbde..7590ddfe 100644 --- a/cli/catalogue/generate.go +++ b/cli/catalogue/generate.go @@ -4,6 +4,7 @@ import ( "encoding/json" "fmt" "io/ioutil" + "os" "path" "coopcloud.tech/abra/cli/formatter" @@ -143,8 +144,26 @@ var catalogueGenerateCommand = &cli.Command{ logrus.Fatal(err) } - if err := ioutil.WriteFile(config.APPS_JSON, recipesJSON, 0644); err != nil { - logrus.Fatal(err) + if _, err := os.Stat(config.APPS_JSON); err != nil && os.IsNotExist(err) { + if err := ioutil.WriteFile(config.APPS_JSON, recipesJSON, 0644); err != nil { + logrus.Fatal(err) + } + } else { + if recipeName != "" { + catlFS, err := catalogue.ReadRecipeCatalogue() + if err != nil { + logrus.Fatal(err) + } + catlFS[recipeName] = catl[recipeName] + + updatedRecipesJSON, err := json.MarshalIndent(catlFS, "", " ") + if err != nil { + logrus.Fatal(err) + } + if err := ioutil.WriteFile(config.APPS_JSON, updatedRecipesJSON, 0644); err != nil { + logrus.Fatal(err) + } + } } logrus.Infof("generated new recipe catalogue in '%s'", config.APPS_JSON)