config: add unknownKeys to Merge
This commit is contained in:
parent
3d67c967aa
commit
a583b800a4
|
@ -4,9 +4,26 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Merge merges two configurations into a single configuration.
|
||||||
|
//
|
||||||
|
// Merge allows for the two configurations to have duplicate resources,
|
||||||
|
// because the resources will be merged. This differs from a single
|
||||||
|
// Config which must only have unique resources.
|
||||||
func Merge(c1, c2 *Config) (*Config, error) {
|
func Merge(c1, c2 *Config) (*Config, error) {
|
||||||
c := new(Config)
|
c := new(Config)
|
||||||
|
|
||||||
|
// Merge unknown keys
|
||||||
|
unknowns := make(map[string]struct{})
|
||||||
|
for _, k := range c1.unknownKeys {
|
||||||
|
unknowns[k] = struct{}{}
|
||||||
|
}
|
||||||
|
for _, k := range c2.unknownKeys {
|
||||||
|
unknowns[k] = struct{}{}
|
||||||
|
}
|
||||||
|
for k, _ := range unknowns {
|
||||||
|
c.unknownKeys = append(c.unknownKeys, k)
|
||||||
|
}
|
||||||
|
|
||||||
// Merge variables: Variable merging is quite simple. Set fields in
|
// Merge variables: Variable merging is quite simple. Set fields in
|
||||||
// later set variables override those earlier.
|
// later set variables override those earlier.
|
||||||
c.Variables = c1.Variables
|
c.Variables = c1.Variables
|
||||||
|
|
Loading…
Reference in New Issue