File tree Expand file tree Collapse file tree 2 files changed +19
-1
lines changed Expand file tree Collapse file tree 2 files changed +19
-1
lines changed Original file line number Diff line number Diff line change 44 "bufio"
55 "fmt"
66 "io"
7+ "maps"
8+ "path"
79 "regexp"
810 "slices"
911 "strconv"
@@ -16,7 +18,7 @@ import (
1618var (
1719 sepRegex = regexp .MustCompile (`^\s*---+\s*$` )
1820 strictSepRegex = regexp .MustCompile (`^---\n$` )
19- skipRegex = regexp .MustCompile (`^![-.:\w]+\s*$` )
21+ skipRegex = regexp .MustCompile (`^![-.:* \w]+\s*$` )
2022)
2123
2224func normalize (key string ) string {
@@ -390,6 +392,16 @@ func assignMetadata(nodes []Node) (result []Node) {
390392 for _ , node := range nodes {
391393 if node .ToolNode != nil {
392394 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+ }
393405 }
394406 result = append (result , node )
395407 }
Original file line number Diff line number Diff line change @@ -258,6 +258,11 @@ asdf2
258258---
259259!metadata:first:requirements.txt
260260asdf
261+
262+ ---
263+ !metadata:f*r*:other
264+
265+ foo bar
261266`
262267 tools , err := ParseTools (strings .NewReader (input ))
263268 require .NoError (t , err )
266271 autogold .Expect (map [string ]string {
267272 "package.json" : "foo=base\n f" ,
268273 "requirements.txt" : "asdf" ,
274+ "other" : "foo bar" ,
269275 }).Equal (t , tools [0 ].MetaData )
270276}
You can’t perform that action at this time.
0 commit comments