32 lines
571 B
Go
32 lines
571 B
Go
package mflagext
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/docker/docker/pkg/mflag"
|
|
)
|
|
|
|
type listOpts struct {
|
|
value *[]string
|
|
hasBeenSet bool
|
|
}
|
|
|
|
func ListVar(p *[]string, names []string, value []string, usage string) {
|
|
*p = value
|
|
mflag.Var(&listOpts{p, false}, names, usage)
|
|
}
|
|
|
|
func (opts *listOpts) Set(value string) error {
|
|
if opts.hasBeenSet {
|
|
(*opts.value) = append((*opts.value), value)
|
|
} else {
|
|
(*opts.value) = []string{value}
|
|
opts.hasBeenSet = true
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (opts *listOpts) String() string {
|
|
return fmt.Sprintf("%v", []string(*opts.value))
|
|
}
|