From 79334cdb8fe26456f351228d06eae3a704814612 Mon Sep 17 00:00:00 2001 From: Christoph Witzko Date: Sun, 13 Mar 2022 13:59:04 +0100 Subject: [PATCH] fix: allow camelcase config overwrites (closes #134) --- cmd/semantic-release/main.go | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/cmd/semantic-release/main.go b/cmd/semantic-release/main.go index ca6df04c..0249208f 100644 --- a/cmd/semantic-release/main.go +++ b/cmd/semantic-release/main.go @@ -65,6 +65,19 @@ func main() { } } +func mergeConfigWithDefaults(defaults, conf map[string]string) { + for k, v := range conf { + defaults[k] = v + // case-insensitive overwrite default values + kLower := strings.ToLower(k) + for dk := range defaults { + if strings.ToLower(dk) == kLower && dk != k { + defaults[dk] = v + } + } + } +} + func cliHandler(cmd *cobra.Command, args []string) { logger := log.New(os.Stderr, "[go-semantic-release]: ", 0) exitIfError := errorHandler(logger) @@ -153,9 +166,8 @@ func cliHandler(cmd *cobra.Command, args []string) { "defaultBranch": repoInfo.DefaultBranch, "prerelease": fmt.Sprintf("%t", conf.Prerelease), } - for k, v := range conf.HooksOpts { - hooksConfig[k] = v - } + mergeConfigWithDefaults(hooksConfig, conf.HooksOpts) + exitIfError(hooksExecutor.Init(hooksConfig)) if !conf.NoCI { @@ -165,9 +177,8 @@ func cliHandler(cmd *cobra.Command, args []string) { "defaultBranch": repoInfo.DefaultBranch, "private": fmt.Sprintf("%t", repoInfo.Private), } - for k, v := range conf.CIConditionOpts { - conditionConfig[k] = v - } + mergeConfigWithDefaults(conditionConfig, conf.CIConditionOpts) + err = ci.RunCondition(conditionConfig) if err != nil { herr := hooksExecutor.NoRelease(&hooks.NoReleaseConfig{