in cli/bpmetadata/tfconfig.go [343:396]
func getBlueprintRequirements(rolesConfigPath, servicesConfigPath, versionsConfigPath string) (*BlueprintRequirements, error) {
//parse blueprint roles
p := hclparse.NewParser()
rolesFile, diags := p.ParseHCLFile(rolesConfigPath)
err := hasHclErrors(diags)
if err != nil {
return nil, err
}
r, err := parseBlueprintRoles(rolesFile)
if err != nil {
return nil, err
}
//parse blueprint services
servicesFile, diags := p.ParseHCLFile(servicesConfigPath)
err = hasHclErrors(diags)
if err != nil {
return nil, err
}
s, err := parseBlueprintServices(servicesFile)
if err != nil {
return nil, err
}
versionCfgFileExists, _ := fileExists(versionsConfigPath)
if !versionCfgFileExists {
return &BlueprintRequirements{
Roles: r,
Services: s,
}, nil
}
//parse blueprint provider versions
versionsFile, diags := p.ParseHCLFile(versionsConfigPath)
err = hasHclErrors(diags)
if err != nil {
return nil, err
}
v, err := parseBlueprintProviderVersions(versionsFile)
if err != nil {
return nil, err
}
return &BlueprintRequirements{
Roles: r,
Services: s,
ProviderVersions: v,
}, nil
}