26 lines
512 B
Go
26 lines
512 B
Go
//go:build linux || freebsd
|
|||
|
|
// +build linux freebsd
|
||
|
|
|
||
|
|
package archive
|
||
|
|
|
||
|
|
import (
|
||
|
|
"compress/bzip2"
|
||
|
|
"io"
|
||
|
|
)
|
||
|
|
|
||
|
|
type tarBz2Extractor struct {
|
||
|
|
*BaseExtractor
|
||
|
|
tar *tarExtractor
|
||
|
|
}
|
||
|
|
|
||
|
|
func NewTarBz2Extractor() *tarBz2Extractor {
|
||
|
|
return &tarBz2Extractor{NewBaseExtractor("tar.bz2", []string{".tar.bz2", ".tbz2"}), NewTarExtractor()}
|
||
|
|
}
|
||
|
|
|
||
|
|
func (t *tarBz2Extractor) Extract(r io.Reader, destDir string) error {
|
||
|
|
bz2r := bzip2.NewReader(r)
|
||
|
|
return t.tar.Extract(bz2r, destDir)
|
||
|
|
}
|
||
|
|
|
||
|
|
func init() { Register(NewTarBz2Extractor()) }
|