mirror of
https://gitea.com/Lydanne/buildx.git
synced 2025-07-16 08:27:06 +08:00
vendor: update compose to v2.4.1
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
This commit is contained in:
40
vendor/github.com/compose-spec/compose-go/v2/override/merge.go
generated
vendored
40
vendor/github.com/compose-spec/compose-go/v2/override/merge.go
generated
vendored
@ -47,7 +47,7 @@ func init() {
|
||||
mergeSpecials["services.*.build"] = mergeBuild
|
||||
mergeSpecials["services.*.build.args"] = mergeToSequence
|
||||
mergeSpecials["services.*.build.additional_contexts"] = mergeToSequence
|
||||
mergeSpecials["services.*.build.extra_hosts"] = mergeToSequence
|
||||
mergeSpecials["services.*.build.extra_hosts"] = mergeExtraHosts
|
||||
mergeSpecials["services.*.build.labels"] = mergeToSequence
|
||||
mergeSpecials["services.*.command"] = override
|
||||
mergeSpecials["services.*.depends_on"] = mergeDependsOn
|
||||
@ -58,7 +58,7 @@ func init() {
|
||||
mergeSpecials["services.*.entrypoint"] = override
|
||||
mergeSpecials["services.*.env_file"] = mergeToSequence
|
||||
mergeSpecials["services.*.environment"] = mergeToSequence
|
||||
mergeSpecials["services.*.extra_hosts"] = mergeToSequence
|
||||
mergeSpecials["services.*.extra_hosts"] = mergeExtraHosts
|
||||
mergeSpecials["services.*.healthcheck.test"] = override
|
||||
mergeSpecials["services.*.labels"] = mergeToSequence
|
||||
mergeSpecials["services.*.logging"] = mergeLogging
|
||||
@ -163,6 +163,22 @@ func mergeNetworks(c any, o any, path tree.Path) (any, error) {
|
||||
return mergeMappings(right, left, path)
|
||||
}
|
||||
|
||||
func mergeExtraHosts(c any, o any, _ tree.Path) (any, error) {
|
||||
right := convertIntoSequence(c)
|
||||
left := convertIntoSequence(o)
|
||||
// Rewrite content of left slice to remove duplicate elements
|
||||
i := 0
|
||||
for _, v := range left {
|
||||
if !slices.Contains(right, v) {
|
||||
left[i] = v
|
||||
i++
|
||||
}
|
||||
}
|
||||
// keep only not duplicated elements from left slice
|
||||
left = left[:i]
|
||||
return append(right, left...), nil
|
||||
}
|
||||
|
||||
func mergeToSequence(c any, o any, _ tree.Path) (any, error) {
|
||||
right := convertIntoSequence(c)
|
||||
left := convertIntoSequence(o)
|
||||
@ -172,15 +188,21 @@ func mergeToSequence(c any, o any, _ tree.Path) (any, error) {
|
||||
func convertIntoSequence(value any) []any {
|
||||
switch v := value.(type) {
|
||||
case map[string]any:
|
||||
seq := make([]any, len(v))
|
||||
i := 0
|
||||
for k, v := range v {
|
||||
if v == nil {
|
||||
seq[i] = k
|
||||
var seq []any
|
||||
for k, val := range v {
|
||||
if val == nil {
|
||||
seq = append(seq, k)
|
||||
} else {
|
||||
seq[i] = fmt.Sprintf("%s=%v", k, v)
|
||||
switch vl := val.(type) {
|
||||
// if val is an array we need to add the key with each value one by one
|
||||
case []any:
|
||||
for _, vlv := range vl {
|
||||
seq = append(seq, fmt.Sprintf("%s=%v", k, vlv))
|
||||
}
|
||||
default:
|
||||
seq = append(seq, fmt.Sprintf("%s=%v", k, val))
|
||||
}
|
||||
}
|
||||
i++
|
||||
}
|
||||
slices.SortFunc(seq, func(a, b any) int {
|
||||
return cmp.Compare(a.(string), b.(string))
|
||||
|
Reference in New Issue
Block a user