archive.go 540 B

123456789101112131415161718192021222324
  1. package testutils
  2. import (
  3. "io"
  4. "github.com/docker/docker/pkg/archive"
  5. "github.com/opencontainers/go-digest"
  6. )
  7. // UncompressedTarDigest returns the canonical digest of the uncompressed tar stream.
  8. func UncompressedTarDigest(compressedTar io.Reader) (digest.Digest, error) {
  9. rd, err := archive.DecompressStream(compressedTar)
  10. if err != nil {
  11. return "", err
  12. }
  13. defer rd.Close()
  14. digester := digest.Canonical.Digester()
  15. if _, err := io.Copy(digester.Hash(), rd); err != nil {
  16. return "", err
  17. }
  18. return digester.Digest(), nil
  19. }