github.com/campoy/docker@v1.8.0-rc1/opts/ulimit.go (about) 1 package opts 2 3 import ( 4 "fmt" 5 6 "github.com/docker/docker/pkg/ulimit" 7 ) 8 9 type UlimitOpt struct { 10 values *map[string]*ulimit.Ulimit 11 } 12 13 func NewUlimitOpt(ref *map[string]*ulimit.Ulimit) *UlimitOpt { 14 if ref == nil { 15 ref = &map[string]*ulimit.Ulimit{} 16 } 17 return &UlimitOpt{ref} 18 } 19 20 func (o *UlimitOpt) Set(val string) error { 21 l, err := ulimit.Parse(val) 22 if err != nil { 23 return err 24 } 25 26 (*o.values)[l.Name] = l 27 28 return nil 29 } 30 31 func (o *UlimitOpt) String() string { 32 var out []string 33 for _, v := range *o.values { 34 out = append(out, v.String()) 35 } 36 37 return fmt.Sprintf("%v", out) 38 } 39 40 func (o *UlimitOpt) GetList() []*ulimit.Ulimit { 41 var ulimits []*ulimit.Ulimit 42 for _, v := range *o.values { 43 ulimits = append(ulimits, v) 44 } 45 46 return ulimits 47 }