2017-02-07 21:33:23 +00:00
|
|
|
package lookup
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/docker/libcompose/config"
|
|
|
|
)
|
|
|
|
|
|
|
|
// ComposableEnvLookup is a structure that implements the project.EnvironmentLookup interface.
|
|
|
|
// It holds an ordered list of EnvironmentLookup to call to look for the environment value.
|
|
|
|
type ComposableEnvLookup struct {
|
|
|
|
Lookups []config.EnvironmentLookup
|
|
|
|
}
|
|
|
|
|
|
|
|
// Lookup creates a string slice of string containing a "docker-friendly" environment string
|
|
|
|
// in the form of 'key=value'. It loop through the lookups and returns the latest value if
|
|
|
|
// more than one lookup return a result.
|
2017-07-06 14:28:13 +00:00
|
|
|
func (l *ComposableEnvLookup) Lookup(key string, config *config.ServiceConfig) []string {
|
2017-02-07 21:33:23 +00:00
|
|
|
result := []string{}
|
|
|
|
for _, lookup := range l.Lookups {
|
2017-07-06 14:28:13 +00:00
|
|
|
env := lookup.Lookup(key, config)
|
2017-02-07 21:33:23 +00:00
|
|
|
if len(env) == 1 {
|
|
|
|
result = env
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return result
|
|
|
|
}
|