mirror of
https://github.com/acepanel/panel.git
synced 2026-02-04 09:13:49 +08:00
feat: 合并gz和tgz
This commit is contained in:
@@ -11,10 +11,9 @@ type FormatArchive string
|
||||
|
||||
const (
|
||||
Zip FormatArchive = "zip"
|
||||
Gz FormatArchive = "gz"
|
||||
Bz2 FormatArchive = "bz2"
|
||||
Tar FormatArchive = "tar"
|
||||
TarGz FormatArchive = "tar.gz"
|
||||
TGz FormatArchive = "tgz"
|
||||
Xz FormatArchive = "xz"
|
||||
SevenZip FormatArchive = "7z"
|
||||
)
|
||||
@@ -49,7 +48,7 @@ func Compress(dir string, src []string, dst string) error {
|
||||
switch format {
|
||||
case Zip:
|
||||
cmd = exec.Command("zip", append([]string{"-qr", "-o", dst}, src...)...)
|
||||
case Gz, TarGz:
|
||||
case TGz:
|
||||
cmd = exec.Command("tar", append([]string{"-czf", dst}, src...)...)
|
||||
case Bz2:
|
||||
cmd = exec.Command("tar", append([]string{"-cjf", dst}, src...)...)
|
||||
@@ -86,7 +85,7 @@ func UnCompress(src string, dst string) error {
|
||||
switch format {
|
||||
case Zip:
|
||||
cmd = exec.Command("unzip", "-qo", src, "-d", dst)
|
||||
case Gz, TarGz:
|
||||
case TGz:
|
||||
cmd = exec.Command("tar", "-xzf", src, "-C", dst)
|
||||
case Bz2:
|
||||
cmd = exec.Command("tar", "-xjf", src, "-C", dst)
|
||||
@@ -108,14 +107,12 @@ func formatArchiveByPath(path string) (FormatArchive, error) {
|
||||
switch filepath.Ext(path) {
|
||||
case ".zip":
|
||||
return Zip, nil
|
||||
case ".gz":
|
||||
return Gz, nil
|
||||
case ".bz2":
|
||||
return Bz2, nil
|
||||
case ".tar":
|
||||
return Tar, nil
|
||||
case ".tar.gz", ".tgz":
|
||||
return TarGz, nil
|
||||
case ".gz", ".tar.gz", ".tgz":
|
||||
return TGz, nil
|
||||
case ".xz":
|
||||
return Xz, nil
|
||||
case ".7z":
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package io
|
||||
|
||||
import (
|
||||
"github.com/go-rat/utils/debug"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
@@ -64,12 +63,12 @@ func (s *IOTestSuite) TestCompress() {
|
||||
s.NoError(err)
|
||||
err = Compress(abs, src, filepath.Join(abs, "compress_test.zip"))
|
||||
s.NoError(err)
|
||||
err = Compress(abs, src, filepath.Join(abs, "compress_test.gz"))
|
||||
s.NoError(err)
|
||||
err = Compress(abs, src, filepath.Join(abs, "compress_test.bz2"))
|
||||
s.NoError(err)
|
||||
err = Compress(abs, src, filepath.Join(abs, "compress_test.tar"))
|
||||
s.NoError(err)
|
||||
err = Compress(abs, src, filepath.Join(abs, "compress_test.gz"))
|
||||
s.NoError(err)
|
||||
err = Compress(abs, src, filepath.Join(abs, "compress_test.tar.gz"))
|
||||
s.NoError(err)
|
||||
err = Compress(abs, src, filepath.Join(abs, "compress_test.tgz"))
|
||||
@@ -93,12 +92,12 @@ func (s *IOTestSuite) TestUnCompress() {
|
||||
s.NoError(err)
|
||||
err = Compress(abs, src, filepath.Join(abs, "uncompress_test.zip"))
|
||||
s.NoError(err)
|
||||
err = Compress(abs, src, filepath.Join(abs, "uncompress_test.gz"))
|
||||
s.NoError(err)
|
||||
err = Compress(abs, src, filepath.Join(abs, "uncompress_test.bz2"))
|
||||
s.NoError(err)
|
||||
err = Compress(abs, src, filepath.Join(abs, "uncompress_test.tar"))
|
||||
s.NoError(err)
|
||||
err = Compress(abs, src, filepath.Join(abs, "uncompress_test.gz"))
|
||||
s.NoError(err)
|
||||
err = Compress(abs, src, filepath.Join(abs, "uncompress_test.tar.gz"))
|
||||
s.NoError(err)
|
||||
err = Compress(abs, src, filepath.Join(abs, "uncompress_test.tgz"))
|
||||
@@ -116,15 +115,6 @@ func (s *IOTestSuite) TestUnCompress() {
|
||||
data, err = Read("testdata/uncompressed_zip/uncompress_test2.txt")
|
||||
s.NoError(err)
|
||||
s.Equal("File 2", data)
|
||||
err = UnCompress(filepath.Join(abs, "uncompress_test.gz"), filepath.Join(abs, "uncompressed_gz"))
|
||||
s.NoError(err)
|
||||
debug.Dump(ReadDir("testdata/uncompressed_gz"))
|
||||
data, err = Read("testdata/uncompressed_gz/uncompress_test1.txt")
|
||||
s.NoError(err)
|
||||
s.Equal("File 1", data)
|
||||
data, err = Read("testdata/uncompressed_gz/uncompress_test2.txt")
|
||||
s.NoError(err)
|
||||
s.Equal("File 2", data)
|
||||
err = UnCompress(filepath.Join(abs, "uncompress_test.bz2"), filepath.Join(abs, "uncompressed_bz2"))
|
||||
s.NoError(err)
|
||||
data, err = Read("testdata/uncompressed_bz2/uncompress_test1.txt")
|
||||
@@ -141,6 +131,14 @@ func (s *IOTestSuite) TestUnCompress() {
|
||||
data, err = Read("testdata/uncompressed_tar/uncompress_test2.txt")
|
||||
s.NoError(err)
|
||||
s.Equal("File 2", data)
|
||||
err = UnCompress(filepath.Join(abs, "uncompress_test.gz"), filepath.Join(abs, "uncompressed_gz"))
|
||||
s.NoError(err)
|
||||
data, err = Read("testdata/uncompressed_gz/uncompress_test1.txt")
|
||||
s.NoError(err)
|
||||
s.Equal("File 1", data)
|
||||
data, err = Read("testdata/uncompressed_gz/uncompress_test2.txt")
|
||||
s.NoError(err)
|
||||
s.Equal("File 2", data)
|
||||
err = UnCompress(filepath.Join(abs, "uncompress_test.tar.gz"), filepath.Join(abs, "uncompressed_tar_gz"))
|
||||
s.NoError(err)
|
||||
data, err = Read("testdata/uncompressed_tar_gz/uncompress_test1.txt")
|
||||
|
||||
Reference in New Issue
Block a user