diff --git a/pkg/domain/dockerCompose/config.go b/pkg/domain/dockerCompose/config.go index 6962bb5..1f01967 100644 --- a/pkg/domain/dockerCompose/config.go +++ b/pkg/domain/dockerCompose/config.go @@ -1129,6 +1129,25 @@ func (v *Volume) Equal(equalable Equalable) bool { } } +func (v *Volume) MergeFirstWin(volume *Volume) { + switch { + case v == nil && volume == nil: + fallthrough + case v != nil && volume == nil: + return + + // WARN: It's not possible to change the memory pointer v *Volume to a new + // initialized Volume without returning the volume it self. + // + // case v == nil && volume != nil: + // v = NewVolume() + // fallthrough + + default: + v.mergeFirstWinExternal(volume.External) + } +} + func (v *Volume) MergeLastWin(volume *Volume) { switch { case v == nil && volume == nil: @@ -1148,6 +1167,13 @@ func (v *Volume) MergeLastWin(volume *Volume) { } } +func (v *Volume) mergeFirstWinExternal(external bool) { + if v.External { + return + } + v.External = true +} + func (v *Volume) mergeLastWinExternal(external bool) { if v.External != external { v.External = external