github.com/kubeshop/testkube@v1.17.23/contrib/executor/curl/pkg/runner/template.go (about)

     1  package runner
     2  
     3  import (
     4  	"strings"
     5  
     6  	"github.com/kubeshop/testkube/pkg/utils"
     7  )
     8  
     9  // ResolveTemplates fills the string array with the values if they are templated
    10  func ResolveTemplates(stringsToResolve []string, params map[string]string) error {
    11  	for i := range stringsToResolve {
    12  		finalCommandPart, err := ResolveTemplate(stringsToResolve[i], params)
    13  		stringsToResolve[i] = finalCommandPart
    14  		if err != nil {
    15  			return err
    16  		}
    17  	}
    18  
    19  	return nil
    20  }
    21  
    22  // ResolveTemplate fills a string with the values if they are templated
    23  func ResolveTemplate(stringToResolve string, params map[string]string) (string, error) {
    24  
    25  	ut, err := utils.NewTemplate("cmd").Parse(stringToResolve)
    26  
    27  	if err != nil {
    28  		return "", err
    29  	}
    30  	writer := new(strings.Builder)
    31  	err = ut.Execute(writer, params)
    32  
    33  	if err != nil {
    34  		return "", err
    35  	}
    36  	return writer.String(), nil
    37  }