From be8e74a4beca243eeae7191428593ef0754d23a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81d=C3=A1m=20Kov=C3=A1cs?= Date: Mon, 3 Mar 2025 06:11:16 +0100 Subject: [PATCH] feat(config): handle merge --- src/config/moduleConfiguration.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/config/moduleConfiguration.go b/src/config/moduleConfiguration.go index b0efe09..0dfa49c 100644 --- a/src/config/moduleConfiguration.go +++ b/src/config/moduleConfiguration.go @@ -59,6 +59,7 @@ func LoadModuleConfiguration(moduleConfigPath string) *ModuleConfiguration { } func (moduleConfig *ModuleConfiguration) Merge(mergeConfig *ModuleConfiguration) { + // Merge links mergedLinks := make(map[string]string, len(moduleConfig.Links)+len(mergeConfig.Links)) for key, value := range moduleConfig.Links { mergedLinks[key] = value @@ -70,6 +71,22 @@ func (moduleConfig *ModuleConfiguration) Merge(mergeConfig *ModuleConfiguration) moduleConfig.Links = mergedLinks + // Merge excludes + mergedExcludes := make([]string, len(moduleConfig.Exclude)+len(mergeConfig.Exclude)) + excludeIndex := 0 + for _, value := range moduleConfig.Exclude { + mergedExcludes[excludeIndex] = value + excludeIndex++ + } + + for _, value := range mergeConfig.Links { + mergedExcludes[excludeIndex] = value + excludeIndex++ + } + + moduleConfig.Exclude = mergedExcludes + + // Simple properties if mergeConfig.Target != "" { moduleConfig.Target = mergeConfig.Target } @@ -79,4 +96,6 @@ func (moduleConfig *ModuleConfiguration) Merge(mergeConfig *ModuleConfiguration) if mergeConfig.Configure != "" { moduleConfig.Configure = mergeConfig.Configure } + + moduleConfig.ExcludeReadme = moduleConfig.ExcludeReadme || mergeConfig.ExcludeReadme }