func (txz *TarXz) Unarchive(source, destination string) error {
	txz.wrapReader()
	return txz.Tar.Unarchive(source, destination)
}
Unarchive unpacks the compressed tarball at
source to destination. Destination will be
treated as a folder name.
package archiver
import (
	"fmt"
	"io"
	"strings"
	"github.com/ulikunitz/xz"
	fastxz "github.com/xi2/xz"
)
type TarXz struct {
	*Tar
}
func (*TarXz) CheckExt(filename string) error {
	if !strings.HasSuffix(filename, ".tar.xz") &&
		!strings.HasSuffix(filename, ".txz") {
		return fmt.Errorf("filename must have a .tar.xz or .txz extension")
	}
	return nil
}
func (txz *TarXz) Archive(sources []string, destination string) error {
	err := txz.CheckExt(destination)
	if err != nil {
		return fmt.Errorf("output %s", err.Error())
	}
	txz.wrapWriter()
	return txz.Tar.Archive(sources, destination)
}