diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2021-10-25 12:18:00 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2021-10-25 19:50:18 +0200 |
commit | 64e1613fb390bd893900dc0596e5c3f3c8e1cd8c (patch) | |
tree | 455ff496e478b906039edd3ebdd523b88d438060 /modules | |
parent | b959ecbc8175e2bf260f10b08965531bce9bcb7e (diff) |
Fix panic when specifying multiple excludeFiles directives
Fixes #9076
Diffstat (limited to 'modules')
-rw-r--r-- | modules/collect.go | 6 | ||||
-rw-r--r-- | modules/config.go | 6 |
2 files changed, 9 insertions, 3 deletions
diff --git a/modules/collect.go b/modules/collect.go index 8798f45b1..44d714a67 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 f80a456cf..fc4d617f9 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] } |