File tree 2 files changed +19
-1
lines changed
2 files changed +19
-1
lines changed Original file line number Diff line number Diff line change 4
4
"bufio"
5
5
"fmt"
6
6
"io"
7
+ "maps"
8
+ "path"
7
9
"regexp"
8
10
"slices"
9
11
"strconv"
@@ -16,7 +18,7 @@ import (
16
18
var (
17
19
sepRegex = regexp .MustCompile (`^\s*---+\s*$` )
18
20
strictSepRegex = regexp .MustCompile (`^---\n$` )
19
- skipRegex = regexp .MustCompile (`^![-.:\w]+\s*$` )
21
+ skipRegex = regexp .MustCompile (`^![-.:* \w]+\s*$` )
20
22
)
21
23
22
24
func normalize (key string ) string {
@@ -390,6 +392,16 @@ func assignMetadata(nodes []Node) (result []Node) {
390
392
for _ , node := range nodes {
391
393
if node .ToolNode != nil {
392
394
node .ToolNode .Tool .MetaData = metadata [node .ToolNode .Tool .Name ]
395
+ for wildcard := range metadata {
396
+ if strings .Contains (wildcard , "*" ) {
397
+ if m , err := path .Match (wildcard , node .ToolNode .Tool .Name ); m && err == nil {
398
+ if node .ToolNode .Tool .MetaData == nil {
399
+ node .ToolNode .Tool .MetaData = map [string ]string {}
400
+ }
401
+ maps .Copy (node .ToolNode .Tool .MetaData , metadata [wildcard ])
402
+ }
403
+ }
404
+ }
393
405
}
394
406
result = append (result , node )
395
407
}
Original file line number Diff line number Diff line change @@ -258,6 +258,11 @@ asdf2
258
258
---
259
259
!metadata:first:requirements.txt
260
260
asdf
261
+
262
+ ---
263
+ !metadata:f*r*:other
264
+
265
+ foo bar
261
266
`
262
267
tools , err := ParseTools (strings .NewReader (input ))
263
268
require .NoError (t , err )
266
271
autogold .Expect (map [string ]string {
267
272
"package.json" : "foo=base\n f" ,
268
273
"requirements.txt" : "asdf" ,
274
+ "other" : "foo bar" ,
269
275
}).Equal (t , tools [0 ].MetaData )
270
276
}
You can’t perform that action at this time.
0 commit comments