Skip to content

Commit 630c42a

Browse files
Fix handling of attest extra arguments
Signed-off-by: Laurent Goderre <[email protected]>
1 parent 4e91fe6 commit 630c42a

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

util/buildflags/attests.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -148,9 +148,8 @@ func (a *Attest) UnmarshalText(text []byte) error {
148148
if !ok {
149149
return errors.Errorf("invalid value %s", field)
150150
}
151-
key = strings.TrimSpace(strings.ToLower(key))
152151

153-
switch key {
152+
switch strings.TrimSpace(strings.ToLower(key)) {
154153
case "type":
155154
a.Type = value
156155
case "disabled":

util/buildflags/export.go

+12-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package buildflags
22

33
import (
4+
"encoding/csv"
45
"encoding/json"
56
"maps"
67
"regexp"
@@ -259,9 +260,17 @@ func (w *csvBuilder) Write(key, value string) {
259260
if w.sb.Len() > 0 {
260261
w.sb.WriteByte(',')
261262
}
262-
w.sb.WriteString(key)
263-
w.sb.WriteByte('=')
264-
w.sb.WriteString(value)
263+
264+
pair := key + "=" + value
265+
if strings.ContainsRune(pair, ',') || strings.ContainsRune(pair, '"') {
266+
var attr strings.Builder
267+
writer := csv.NewWriter(&attr)
268+
writer.Write([]string{pair})
269+
writer.Flush()
270+
pair = strings.TrimSpace(attr.String())
271+
}
272+
273+
w.sb.WriteString(pair)
265274
}
266275

267276
func (w *csvBuilder) WriteAttributes(attrs map[string]string) {

0 commit comments

Comments
 (0)