Skip to content

Commit 8b6f23d

Browse files
committed
cli/compose/loader: remove some wrapper utilities
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
1 parent d62b889 commit 8b6f23d

1 file changed

Lines changed: 13 additions & 37 deletions

File tree

cli/compose/loader/merge.go

Lines changed: 13 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -28,26 +28,22 @@ func (s *specials) Transformer(t reflect.Type) func(dst, src reflect.Value) erro
2828
func merge(configs []*types.Config) (*types.Config, error) {
2929
base := configs[0]
3030
for _, override := range configs[1:] {
31-
var err error
32-
base.Services, err = mergeServices(base.Services, override.Services)
33-
if err != nil {
34-
return base, fmt.Errorf("cannot merge services from %s: %w", override.Filename, err)
31+
if services, err := mergeServices(base.Services, override.Services); err != nil {
32+
return nil, fmt.Errorf("cannot merge services from %s: %w", override.Filename, err)
33+
} else {
34+
base.Services = services
3535
}
36-
base.Volumes, err = mergeVolumes(base.Volumes, override.Volumes)
37-
if err != nil {
38-
return base, fmt.Errorf("cannot merge volumes from %s: %w", override.Filename, err)
36+
if err := mergo.Map(&base.Volumes, &override.Volumes, mergo.WithOverride); err != nil {
37+
return nil, fmt.Errorf("cannot merge volumes from %s: %w", override.Filename, err)
3938
}
40-
base.Networks, err = mergeNetworks(base.Networks, override.Networks)
41-
if err != nil {
42-
return base, fmt.Errorf("cannot merge networks from %s: %w", override.Filename, err)
39+
if err := mergo.Map(&base.Networks, &override.Networks, mergo.WithOverride); err != nil {
40+
return nil, fmt.Errorf("cannot merge networks from %s: %w", override.Filename, err)
4341
}
44-
base.Secrets, err = mergeSecrets(base.Secrets, override.Secrets)
45-
if err != nil {
46-
return base, fmt.Errorf("cannot merge secrets from %s: %w", override.Filename, err)
42+
if err := mergo.Map(&base.Secrets, &override.Secrets, mergo.WithOverride); err != nil {
43+
return nil, fmt.Errorf("cannot merge secrets from %s: %w", override.Filename, err)
4744
}
48-
base.Configs, err = mergeConfigs(base.Configs, override.Configs)
49-
if err != nil {
50-
return base, fmt.Errorf("cannot merge configs from %s: %w", override.Filename, err)
45+
if err := mergo.Map(&base.Configs, &override.Configs, mergo.WithOverride); err != nil {
46+
return nil, fmt.Errorf("cannot merge configs from %s: %w", override.Filename, err)
5147
}
5248
}
5349
return base, nil
@@ -78,7 +74,7 @@ func mergeServices(base, override []types.ServiceConfig) ([]types.ServiceConfig,
7874
for _, overrideService := range override {
7975
if baseService, ok := baseServices[overrideService.Name]; ok {
8076
if err := mergo.Merge(&baseService, &overrideService, mergeOpts...); err != nil {
81-
return base, fmt.Errorf("cannot merge service %s: %w", overrideService.Name, err)
77+
return nil, fmt.Errorf("cannot merge service %s: %w", overrideService.Name, err)
8278
}
8379
baseServices[overrideService.Name] = baseService
8480
continue
@@ -284,23 +280,3 @@ func mergeUint64(dst, src reflect.Value) error {
284280
}
285281
return nil
286282
}
287-
288-
func mergeVolumes(base, override map[string]types.VolumeConfig) (map[string]types.VolumeConfig, error) {
289-
err := mergo.Map(&base, &override, mergo.WithOverride)
290-
return base, err
291-
}
292-
293-
func mergeNetworks(base, override map[string]types.NetworkConfig) (map[string]types.NetworkConfig, error) {
294-
err := mergo.Map(&base, &override, mergo.WithOverride)
295-
return base, err
296-
}
297-
298-
func mergeSecrets(base, override map[string]types.SecretConfig) (map[string]types.SecretConfig, error) {
299-
err := mergo.Map(&base, &override, mergo.WithOverride)
300-
return base, err
301-
}
302-
303-
func mergeConfigs(base, override map[string]types.ConfigObjConfig) (map[string]types.ConfigObjConfig, error) {
304-
err := mergo.Map(&base, &override, mergo.WithOverride)
305-
return base, err
306-
}

0 commit comments

Comments
 (0)