From e103fa4a870a0f79ca852ad093bf7af0885e55a0 Mon Sep 17 00:00:00 2001 From: mudler Date: Sat, 24 Jun 2023 00:53:53 +0200 Subject: [PATCH] Write a config file only if there is one specified --- pkg/gallery/models.go | 52 +++++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/pkg/gallery/models.go b/pkg/gallery/models.go index ee28f03a..a354d8b5 100644 --- a/pkg/gallery/models.go +++ b/pkg/gallery/models.go @@ -219,33 +219,37 @@ func InstallModel(basePath, nameOverride string, config *Config, configOverrides return err } - configFilePath := filepath.Join(basePath, name+".yaml") + // write config file + if len(configOverrides) != 0 || len(config.ConfigFile) != 0 { + configFilePath := filepath.Join(basePath, name+".yaml") - // Read and update config file as map[string]interface{} - configMap := make(map[string]interface{}) - err = yaml.Unmarshal([]byte(config.ConfigFile), &configMap) - if err != nil { - return fmt.Errorf("failed to unmarshal config YAML: %v", err) + // Read and update config file as map[string]interface{} + configMap := make(map[string]interface{}) + err = yaml.Unmarshal([]byte(config.ConfigFile), &configMap) + if err != nil { + return fmt.Errorf("failed to unmarshal config YAML: %v", err) + } + + configMap["name"] = name + + if err := mergo.Merge(&configMap, configOverrides, mergo.WithOverride); err != nil { + return err + } + + // Write updated config file + updatedConfigYAML, err := yaml.Marshal(configMap) + if err != nil { + return fmt.Errorf("failed to marshal updated config YAML: %v", err) + } + + err = os.WriteFile(configFilePath, updatedConfigYAML, 0644) + if err != nil { + return fmt.Errorf("failed to write updated config file: %v", err) + } + + log.Debug().Msgf("Written config file %s", configFilePath) } - configMap["name"] = name - - if err := mergo.Merge(&configMap, configOverrides, mergo.WithOverride); err != nil { - return err - } - - // Write updated config file - updatedConfigYAML, err := yaml.Marshal(configMap) - if err != nil { - return fmt.Errorf("failed to marshal updated config YAML: %v", err) - } - - err = os.WriteFile(configFilePath, updatedConfigYAML, 0644) - if err != nil { - return fmt.Errorf("failed to write updated config file: %v", err) - } - - log.Debug().Msgf("Written config file %s", configFilePath) return nil }