mirror of
https://github.com/acepanel/panel.git
synced 2026-02-04 13:47:15 +08:00
feat: 规范压缩解压
This commit is contained in:
@@ -26,15 +26,6 @@ func Compress(dir string, src []string, dst string) error {
|
||||
if len(src) == 0 {
|
||||
src = append(src, ".")
|
||||
}
|
||||
// 去掉路径前缀,减少压缩包内文件夹层级
|
||||
for i, s := range src {
|
||||
if strings.HasPrefix(s, dir) {
|
||||
s = strings.TrimPrefix(s, dir)
|
||||
if s != "" && s[0] == '/' {
|
||||
src[i] = strings.TrimPrefix(s, "/")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
format, err := formatArchiveByPath(dst)
|
||||
if err != nil {
|
||||
|
||||
@@ -53,14 +53,14 @@ func (s *IOTestSuite) TestWriteAppendAppendsToFile() {
|
||||
}
|
||||
|
||||
func (s *IOTestSuite) TestCompress() {
|
||||
src := []string{"compress_test1.txt", "compress_test2.txt"}
|
||||
err := Write(src[0], "File 1", 0644)
|
||||
s.NoError(err)
|
||||
err = Write(src[1], "File 2", 0644)
|
||||
s.NoError(err)
|
||||
|
||||
abs, err := filepath.Abs("testdata")
|
||||
s.NoError(err)
|
||||
src := []string{"compress_test1.txt", "compress_test2.txt"}
|
||||
err = Write(filepath.Join(abs, src[0]), "File 1", 0644)
|
||||
s.NoError(err)
|
||||
err = Write(filepath.Join(abs, src[1]), "File 2", 0644)
|
||||
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.bz2"))
|
||||
@@ -82,14 +82,14 @@ func (s *IOTestSuite) TestCompress() {
|
||||
}
|
||||
|
||||
func (s *IOTestSuite) TestUnCompress() {
|
||||
src := []string{"uncompress_test1.txt", "uncompress_test2.txt"}
|
||||
err := Write(src[0], "File 1", 0644)
|
||||
s.NoError(err)
|
||||
err = Write(src[1], "File 2", 0644)
|
||||
s.NoError(err)
|
||||
|
||||
abs, err := filepath.Abs("testdata")
|
||||
s.NoError(err)
|
||||
src := []string{"uncompress_test1.txt", "uncompress_test2.txt"}
|
||||
err = Write(filepath.Join(abs, src[0]), "File 1", 0644)
|
||||
s.NoError(err)
|
||||
err = Write(filepath.Join(abs, src[1]), "File 2", 0644)
|
||||
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.bz2"))
|
||||
|
||||
Reference in New Issue
Block a user