in pkg/bundle/archive.go [63:84]
func readVersionFromBundle(tarReader *tar.Reader) (string, error) {
header, headerErr := tarReader.Next()
if headerErr != nil {
fmt.Printf("bundleError parsing tar: %v", headerErr)
return "", headerErr
}
if header.Name != versionFileName {
err := errors.New("invalid bundle format, first file should be a version file")
return "", err
}
versionData := make([]byte, header.Size)
_, readVersionErr := tarReader.Read(versionData)
// We need to read a second time to get the io.EOF message
_, readVersionErr = tarReader.Read(nil)
if readVersionErr != io.EOF {
return "", fmt.Errorf("unable to read version: %v", readVersionErr)
}
return string(versionData), nil
}