get.porter.sh/porter@v1.3.0/pkg/storage/parameters.go (about) 1 package storage 2 3 import ( 4 "fmt" 5 "strings" 6 7 "get.porter.sh/porter/pkg/secrets" 8 "github.com/cnabio/cnab-go/secrets/host" 9 ) 10 11 // ParseVariableAssignments converts a string array of variable assignments 12 // into a map of keys and values 13 // Example: 14 // [a=b c=abc1232=== d=banana d=pineapple] becomes map[a:b c:abc1232=== d:[pineapple]] 15 func ParseVariableAssignments(params []string) (map[string]string, error) { 16 variables := make(map[string]string) 17 for _, p := range params { 18 19 parts := strings.SplitN(p, "=", 2) 20 if len(parts) < 2 { 21 return nil, fmt.Errorf("invalid parameter (%s), must be in name=value format", p) 22 } 23 24 variable := strings.TrimSpace(parts[0]) 25 if variable == "" { 26 return nil, fmt.Errorf("invalid parameter (%s), variable name is required", p) 27 } 28 value := strings.TrimSpace(parts[1]) 29 30 variables[variable] = value 31 } 32 33 return variables, nil 34 } 35 36 // ValueStrategy is the strategy used to store non-sensitive parameters 37 func ValueStrategy(name string, value string) secrets.SourceMap { 38 return secrets.SourceMap{ 39 Name: name, 40 Source: secrets.Source{Strategy: host.SourceValue, Hint: value}, 41 ResolvedValue: value, 42 } 43 }