func (tgz *TarGz) Walk(archive string, walkFn WalkFunc) error {
	tgz.wrapReader()
	return tgz.Tar.Walk(archive, walkFn)
}
Walk calls walkFn for each visited item in archive.
package archiver
import (
	"compress/gzip"
	"fmt"
	"io"
	"strings"
)
type TarGz struct {
	*Tar
	CompressionLevel int
}
func (*TarGz) CheckExt(filename string) error {
	if !strings.HasSuffix(filename, ".tar.gz") &&
		!strings.HasSuffix(filename, ".tgz") {
		return fmt.Errorf("filename must have a .tar.gz or .tgz extension")
	}
	return nil
}
func (tgz *TarGz) Archive(sources []string, destination string) error {
	err := tgz.CheckExt(destination)
	if err != nil {
		return fmt.Errorf("output %s", err.Error())
	}
	tgz.wrapWriter()
	return tgz.Tar.Archive(sources, destination)
}
func (tgz *TarGz) Unarchive(source, destination string) error {
	tgz.wrapReader()
	return tgz.Tar.Unarchive(source, destination)
}