dotcloud/docker

View on GitHub
internal/testutils/archive.go

Summary

Maintainability
A
0 mins
Test Coverage
package testutils

import (
    "io"

    "github.com/docker/docker/pkg/archive"
    "github.com/opencontainers/go-digest"
)

// UncompressedTarDigest returns the canonical digest of the uncompressed tar stream.
func UncompressedTarDigest(compressedTar io.Reader) (digest.Digest, error) {
    rd, err := archive.DecompressStream(compressedTar)
    if err != nil {
        return "", err
    }

    defer rd.Close()

    digester := digest.Canonical.Digester()
    if _, err := io.Copy(digester.Hash(), rd); err != nil {
        return "", err
    }
    return digester.Digest(), nil
}