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  }