123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package genericresource
- import (
- "strconv"
- "strings"
- "github.com/docker/swarmkit/api"
- )
- func discreteToString(d *api.GenericResource_DiscreteResourceSpec) string {
- return strconv.FormatInt(d.DiscreteResourceSpec.Value, 10)
- }
- // Kind returns the kind key as a string
- func Kind(res *api.GenericResource) string {
- switch r := res.Resource.(type) {
- case *api.GenericResource_DiscreteResourceSpec:
- return r.DiscreteResourceSpec.Kind
- case *api.GenericResource_NamedResourceSpec:
- return r.NamedResourceSpec.Kind
- }
- return ""
- }
- // Value returns the value key as a string
- func Value(res *api.GenericResource) string {
- switch res := res.Resource.(type) {
- case *api.GenericResource_DiscreteResourceSpec:
- return discreteToString(res)
- case *api.GenericResource_NamedResourceSpec:
- return res.NamedResourceSpec.Value
- }
- return ""
- }
- // EnvFormat returns the environment string version of the resource
- func EnvFormat(res []*api.GenericResource, prefix string) []string {
- envs := make(map[string][]string)
- for _, v := range res {
- key := Kind(v)
- val := Value(v)
- envs[key] = append(envs[key], val)
- }
- env := make([]string, 0, len(res))
- for k, v := range envs {
- k = strings.ToUpper(prefix + "_" + k)
- env = append(env, k+"="+strings.Join(v, ","))
- }
- return env
- }
|