github.com/baris/docker@v1.7.0/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  }