github.com/ctmnz/docker@v1.6.0-rc3/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 return &UlimitOpt{ref} 15 } 16 17 func (o *UlimitOpt) Set(val string) error { 18 l, err := ulimit.Parse(val) 19 if err != nil { 20 return err 21 } 22 23 o.values[l.Name] = l 24 25 return nil 26 } 27 28 func (o *UlimitOpt) String() string { 29 var out []string 30 for _, v := range o.values { 31 out = append(out, v.String()) 32 } 33 34 return fmt.Sprintf("%v", out) 35 } 36 37 func (o *UlimitOpt) GetList() []*ulimit.Ulimit { 38 var ulimits []*ulimit.Ulimit 39 for _, v := range o.values { 40 ulimits = append(ulimits, v) 41 } 42 43 return ulimits 44 }