mirror of
https://github.com/ko-build/ko.git
synced 2025-11-23 22:35:11 +02:00
fix: possible race condition when applying templates to flags/ldflags (#913)
* fix: possible race condition when applying templates to flags/ldflags Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com> * fix: wrong param order Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
ac2df47914
commit
ff69e17d10
@@ -699,22 +699,23 @@ func createTemplateData() map[string]interface{} {
|
||||
}
|
||||
}
|
||||
|
||||
func applyTemplating(list []string, data map[string]interface{}) error {
|
||||
for i, entry := range list {
|
||||
func applyTemplating(list []string, data map[string]interface{}) ([]string, error) {
|
||||
result := make([]string, 0, len(list))
|
||||
for _, entry := range list {
|
||||
tmpl, err := template.New("argsTmpl").Option("missingkey=error").Parse(entry)
|
||||
if err != nil {
|
||||
return err
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var buf bytes.Buffer
|
||||
if err := tmpl.Execute(&buf, data); err != nil {
|
||||
return err
|
||||
return nil, err
|
||||
}
|
||||
|
||||
list[i] = buf.String()
|
||||
result = append(result, buf.String())
|
||||
}
|
||||
|
||||
return nil
|
||||
return result, nil
|
||||
}
|
||||
|
||||
func createBuildArgs(buildCfg Config) ([]string, error) {
|
||||
@@ -723,19 +724,21 @@ func createBuildArgs(buildCfg Config) ([]string, error) {
|
||||
data := createTemplateData()
|
||||
|
||||
if len(buildCfg.Flags) > 0 {
|
||||
if err := applyTemplating(buildCfg.Flags, data); err != nil {
|
||||
flags, err := applyTemplating(buildCfg.Flags, data)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
args = append(args, buildCfg.Flags...)
|
||||
args = append(args, flags...)
|
||||
}
|
||||
|
||||
if len(buildCfg.Ldflags) > 0 {
|
||||
if err := applyTemplating(buildCfg.Ldflags, data); err != nil {
|
||||
ldflags, err := applyTemplating(buildCfg.Ldflags, data)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
args = append(args, fmt.Sprintf("-ldflags=%s", strings.Join(buildCfg.Ldflags, " ")))
|
||||
args = append(args, fmt.Sprintf("-ldflags=%s", strings.Join(ldflags, " ")))
|
||||
}
|
||||
|
||||
// Reject any flags that attempt to set --toolexec (with or
|
||||
|
||||
Reference in New Issue
Block a user