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 }