in internal/processor/processor.go [92:129]
func (client *ProcessorClient) Metadata() (*LibMetadata, error) {
metadataFile, err := client.fs.Open(alzLibraryMetadataFile)
var pe *fs.PathError
if errors.As(err, &pe) {
return &LibMetadata{
Name: "",
DisplayName: "",
Description: "",
Path: "",
Dependencies: make([]LibMetadataDependency, 0),
}, nil
}
if err != nil {
return nil, fmt.Errorf("ProcessorClient.Metadata: error opening metadata file: %w", err)
}
defer metadataFile.Close() // nolint: errcheck
data, err := io.ReadAll(metadataFile)
if err != nil {
return nil, fmt.Errorf("ProcessorClient.Metadata: error reading metadata file: %w", err)
}
unmar := newUnmarshaler(data, ".json")
metadata := new(LibMetadata)
err = unmar.unmarshal(metadata)
if err != nil {
return nil, fmt.Errorf("ProcessorClient.Metadata: error unmarshaling metadata: %w", err)
}
for _, dep := range metadata.Dependencies {
switch {
case dep.Path != "" && dep.Ref != "" && dep.CustomUrl == "":
continue
case dep.Path == "" && dep.Ref == "" && dep.CustomUrl != "":
continue
default:
return nil, fmt.Errorf("ProcessorClient.Metadata: invalid dependency, either path & ref should be set, or custom_url: %v", dep)
}
}
return metadata, nil
}