in cli/bpmetadata/cmd.go [140:191]
func generateMetadataForBpPath(bpPath string) error {
//try to read existing metadata.yaml
bpObj, err := UnmarshalMetadata(bpPath, metadataFileName)
if err != nil && !errors.Is(err, os.ErrNotExist) && !mdFlags.force {
return err
}
// create core metadata
bpMetaObj, err := CreateBlueprintMetadata(bpPath, bpObj)
if err != nil {
return fmt.Errorf("error creating metadata for blueprint at path: %s. Details: %w", bpPath, err)
}
// If the flag is set, update output types
if mdFlags.genOutputType {
err = updateOutputTypes(bpPath, bpMetaObj.Spec.Interfaces)
if err != nil {
return fmt.Errorf("error updating output types: %w", err)
}
}
// write core metadata to disk
err = WriteMetadata(bpMetaObj, bpPath, metadataFileName)
if err != nil {
return fmt.Errorf("error writing metadata to disk for blueprint at path: %s. Details: %w", bpPath, err)
}
// continue with creating display metadata if the flag is set,
// else let the command exit
if !mdFlags.display {
return nil
}
bpDpObj, err := UnmarshalMetadata(bpPath, metadataDisplayFileName)
if err != nil && !errors.Is(err, os.ErrNotExist) && !mdFlags.force {
return err
}
// create display metadata
bpMetaDpObj, err := CreateBlueprintDisplayMetadata(bpPath, bpDpObj, bpMetaObj)
if err != nil {
return fmt.Errorf("error creating display metadata for blueprint at path: %s. Details: %w", bpPath, err)
}
// write display metadata to disk
err = WriteMetadata(bpMetaDpObj, bpPath, metadataDisplayFileName)
if err != nil {
return fmt.Errorf("error writing display metadata to disk for blueprint at path: %s. Details: %w", bpPath, err)
}
return nil
}