mirror of https://github.com/portainer/portainer
41 lines
802 B
Go
41 lines
802 B
Go
|
package cli
|
||
|
|
||
|
import (
|
||
|
"github.com/portainer/portainer"
|
||
|
|
||
|
"fmt"
|
||
|
"gopkg.in/alecthomas/kingpin.v2"
|
||
|
"strings"
|
||
|
)
|
||
|
|
||
|
type pairList []portainer.Pair
|
||
|
|
||
|
// Set implementation for a list of portainer.Pair
|
||
|
func (l *pairList) Set(value string) error {
|
||
|
parts := strings.SplitN(value, "=", 2)
|
||
|
if len(parts) != 2 {
|
||
|
return fmt.Errorf("expected NAME=VALUE got '%s'", value)
|
||
|
}
|
||
|
p := new(portainer.Pair)
|
||
|
p.Name = parts[0]
|
||
|
p.Value = parts[1]
|
||
|
*l = append(*l, *p)
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
// String implementation for a list of pair
|
||
|
func (l *pairList) String() string {
|
||
|
return ""
|
||
|
}
|
||
|
|
||
|
// IsCumulative implementation for a list of pair
|
||
|
func (l *pairList) IsCumulative() bool {
|
||
|
return true
|
||
|
}
|
||
|
|
||
|
func pairs(s kingpin.Settings) (target *[]portainer.Pair) {
|
||
|
target = new([]portainer.Pair)
|
||
|
s.SetValue((*pairList)(target))
|
||
|
return
|
||
|
}
|