func getOverlays()

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")
}