diff --git a/hugolib/mount_filters_test.go b/hugolib/mount_filters_test.go index 5e409fcaa19..5f41577155f 100644 --- a/hugolib/mount_filters_test.go +++ b/hugolib/mount_filters_test.go @@ -62,7 +62,7 @@ includeFiles = "/mydata/**" [[module.mounts]] source = 'assets' target = 'assets' -excludeFiles = "/**exclude.*" +excludeFiles = ["/**exclude.*", "/moooo.*"] [[module.mounts]] source = 'i18n' target = 'i18n' diff --git a/modules/collect.go b/modules/collect.go index 8798f45b118..44d714a67aa 100644 --- a/modules/collect.go +++ b/modules/collect.go @@ -149,13 +149,13 @@ func (m *ModulesConfig) finalize(logger loggers.Logger) error { func filterUnwantedMounts(mounts []Mount) []Mount { // Remove duplicates - seen := make(map[Mount]bool) + seen := make(map[string]bool) tmp := mounts[:0] for _, m := range mounts { - if !seen[m] { + if !seen[m.key()] { tmp = append(tmp, m) } - seen[m] = true + seen[m.key()] = true } return tmp } diff --git a/modules/config.go b/modules/config.go index f80a456cfc9..fc4d617f9cf 100644 --- a/modules/config.go +++ b/modules/config.go @@ -15,6 +15,7 @@ package modules import ( "fmt" + "path" "path/filepath" "strings" @@ -386,6 +387,11 @@ type Mount struct { ExcludeFiles interface{} } +// Used as key to remove duplicates. +func (m Mount) key() string { + return path.Join(m.Lang, m.Source, m.Target) +} + func (m Mount) Component() string { return strings.Split(m.Target, fileSeparator)[0] }