func readVersionFromBundle()

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
}