1 package genericresource
7 "github.com/docker/swarmkit/api"
10 func discreteToString(d *api.GenericResource_Discrete) string {
11 return strconv.FormatInt(d.Discrete.Value, 10)
14 // Kind returns the kind key as a string
15 func Kind(res *api.GenericResource) string {
16 switch r := res.Resource.(type) {
17 case *api.GenericResource_Discrete:
18 return r.Discrete.Kind
19 case *api.GenericResource_Str:
26 // Value returns the value key as a string
27 func Value(res *api.GenericResource) string {
28 switch res := res.Resource.(type) {
29 case *api.GenericResource_Discrete:
30 return discreteToString(res)
31 case *api.GenericResource_Str:
38 // EnvFormat returns the environment string version of the resource
39 func EnvFormat(res []*api.GenericResource, prefix string) []string {
40 envs := make(map[string][]string)
41 for _, v := range res {
44 envs[key] = append(envs[key], val)
47 env := make([]string, 0, len(res))
48 for k, v := range envs {
49 k = strings.ToUpper(prefix + "_" + k)
50 env = append(env, k+"="+strings.Join(v, ","))