in pkg/bundle/v2_processor.go [102:131]
func getOverlays(metadataTarReader *tar.Reader) (*overlays, error) {
// iterate headers in the metadata tar file and process each file in the tar
for {
header, err := metadataTarReader.Next()
if err == io.EOF {
// we there are no more headers, we finish
break
} else if err != nil {
return nil, err
}
// if we find the overlays file, read the bytes and parse it
if header.Name == overlaysFileName {
overlayBytes, overlayBytesErr := ioutil.ReadAll(metadataTarReader)
if overlayBytesErr != nil {
return nil, overlayBytesErr
}
var overlays overlays
// unmarshal json
jsonErr := json.Unmarshal(overlayBytes, &overlays)
if jsonErr != nil {
return nil, fmt.Errorf("unable to parse JSON of the overlays file: %s", jsonErr)
}
return &overlays, nil
}
}
return nil, fmt.Errorf("overlays file not find in metadata")
}