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