parseModule parses module content and converts it to a yaml node Also process new sections: Rain, Constants, Modules, Packages
(content []byte, rootDir string, fs *embed.FS)
| 483 | // parseModule parses module content and converts it to a yaml node |
| 484 | // Also process new sections: Rain, Constants, Modules, Packages |
| 485 | func parseModule(content []byte, rootDir string, fs *embed.FS) (*ParsedModule, error) { |
| 486 | |
| 487 | var err error |
| 488 | |
| 489 | // Parse the file |
| 490 | var moduleNode yaml.Node |
| 491 | err = yaml.Unmarshal(content, &moduleNode) |
| 492 | if err != nil { |
| 493 | return nil, err |
| 494 | } |
| 495 | |
| 496 | err = parse.NormalizeNode(&moduleNode) |
| 497 | if err != nil { |
| 498 | return nil, err |
| 499 | } |
| 500 | |
| 501 | // Treat the module as a template |
| 502 | moduleAsTemplate := cft.Template{Node: &moduleNode} |
| 503 | |
| 504 | return &ParsedModule{ |
| 505 | Node: moduleNode.Content[0], |
| 506 | AsTemplate: &moduleAsTemplate, |
| 507 | RootDir: rootDir, |
| 508 | FS: fs, |
| 509 | }, nil |
| 510 | } |
| 511 | |
| 512 | // Type: !Rain::Module |
| 513 | // This handles the Rain Module directive, not the Modules section |
no test coverage detected