10 // TarGzipDecompressor is an implementation of Decompressor that can
11 // decompress tar.gzip files.
12 type TarGzipDecompressor struct{}
14 func (d *TarGzipDecompressor) Decompress(dst, src string, dir bool) error {
15 // If we're going into a directory we should make that first
18 mkdir = filepath.Dir(dst)
20 if err := os.MkdirAll(mkdir, 0755); err != nil {
25 f, err := os.Open(src)
31 // Gzip compression is second
32 gzipR, err := gzip.NewReader(f)
34 return fmt.Errorf("Error opening a gzip reader for %s: %s", src, err)
38 return untar(gzipR, dst, src, dir)