github.com/chenbh/concourse/v6@v6.4.2/fly/commands/internal/flaghelpers/yaml_variable_pair_flag.go (about)

     1  package flaghelpers
     2  
     3  import (
     4  	"fmt"
     5  	"strings"
     6  
     7  	yaml "gopkg.in/yaml.v2"
     8  )
     9  
    10  type YAMLVariablePairFlag struct {
    11  	Name  string
    12  	Value interface{}
    13  }
    14  
    15  func (pair *YAMLVariablePairFlag) UnmarshalFlag(value string) error {
    16  	vs := strings.SplitN(value, "=", 2)
    17  	if len(vs) != 2 {
    18  		return fmt.Errorf("invalid input pair '%s' (must be name=value)", value)
    19  	}
    20  
    21  	pair.Name = vs[0]
    22  
    23  	err := yaml.Unmarshal([]byte(vs[1]), &pair.Value)
    24  	if err != nil {
    25  		return err
    26  	}
    27  
    28  	return nil
    29  }