2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-05 00:39:32 +08:00

fix: lint and test

This commit is contained in:
耗子
2023-11-20 22:15:33 +08:00
parent 4ab4f273e7
commit 58a13f0636
3 changed files with 30 additions and 66 deletions

View File

@@ -208,7 +208,6 @@ func (s *BackupImpl) MysqlRestore(database string, backupFile string) error {
if err != nil {
return err
}
defer tools.Remove(tempDir)
if !strings.HasSuffix(backupFile, ".sql") {
backupFile = "" // 置空,防止干扰后续判断
@@ -237,6 +236,10 @@ func (s *BackupImpl) MysqlRestore(database string, backupFile string) error {
return err
}
if err = tools.Remove(tempDir); err != nil {
return err
}
return os.Unsetenv("MYSQL_PWD")
}
@@ -305,7 +308,6 @@ func (s *BackupImpl) PostgresqlRestore(database string, backupFile string) error
if err != nil {
return err
}
defer tools.Remove(tempDir)
if !strings.HasSuffix(backupFile, ".sql") {
backupFile = "" // 置空,防止干扰后续判断
@@ -334,5 +336,9 @@ func (s *BackupImpl) PostgresqlRestore(database string, backupFile string) error
return err
}
if err = tools.Remove(tempDir); err != nil {
return err
}
return nil
}

View File

@@ -5,16 +5,13 @@ import (
"errors"
"fmt"
"io"
"io/ioutil"
"os"
"os/exec"
"os/user"
"path/filepath"
"strings"
"github.com/goravel/framework/support"
"github.com/mholt/archiver/v3"
"github.com/spf13/cast"
)
// Write 写入文件
@@ -101,52 +98,13 @@ func Chmod(path string, permission os.FileMode) error {
}
// Chown 修改文件或目录所有者
func Chown(path, userName, groupName string) error {
func Chown(path, user, group string) error {
if IsWindows() {
return errors.New("chown is not supported on Windows")
}
usr, err := user.Lookup(userName)
if err != nil {
return err
}
grp, err := user.LookupGroup(groupName)
if err != nil {
return err
}
return chownR(path, cast.ToInt(usr.Uid), cast.ToInt(grp.Gid))
}
// chownR 递归修改文件或目录的所有者
func chownR(path string, uid, gid int) error {
err := os.Chown(path, uid, gid)
if err != nil {
return err
}
fileInfo, err := os.Stat(path)
if err != nil {
return err
}
if fileInfo.IsDir() {
entries, err := os.ReadDir(path)
if err != nil {
return err
}
for _, entry := range entries {
subPath := path + "/" + entry.Name()
err = chownR(subPath, uid, gid)
if err != nil {
return err
}
}
}
return nil
cmd := exec.Command("chown", "-R", user+":"+group, path)
return cmd.Run()
}
// Exists 判断路径是否存在
@@ -171,7 +129,7 @@ func Mv(src, dst string) error {
// 如果在不同的文件系统中移动文件os.Rename 可能会失败
// 在这种情况下,可以先复制然后删除原文件
if os.IsExist(err) {
err := Cp(src, dst)
err = Cp(src, dst)
if err != nil {
return err
}
@@ -222,7 +180,7 @@ func copyDir(src, dst string) error {
return err
}
entries, err := ioutil.ReadDir(src)
entries, err := os.ReadDir(src)
if err != nil {
return err
}

View File

@@ -19,18 +19,17 @@ func TestSystemHelperTestSuite(t *testing.T) {
func (s *SystemHelperTestSuite) TestWrite() {
filePath, _ := TempFile("testfile")
defer Remove(filePath.Name())
s.Nil(Write(filePath.Name(), "test data", 0644))
s.FileExists(filePath.Name())
content, _ := Read(filePath.Name())
s.Equal("test data", content)
s.Nil(Remove(filePath.Name()))
}
func (s *SystemHelperTestSuite) TestRead() {
filePath, _ := TempFile("testfile")
defer Remove(filePath.Name())
err := Write(filePath.Name(), "test data", 0644)
s.Nil(err)
@@ -38,6 +37,7 @@ func (s *SystemHelperTestSuite) TestRead() {
data, err := Read(filePath.Name())
s.Nil(err)
s.Equal("test data", data)
s.Nil(Remove(filePath.Name()))
}
func (s *SystemHelperTestSuite) TestRemove() {
@@ -80,24 +80,23 @@ func (s *SystemHelperTestSuite) TestExecAsync() {
func (s *SystemHelperTestSuite) TestMkdir() {
dirPath, _ := TempDir("testdir")
defer Remove(dirPath)
s.Nil(Mkdir(dirPath, 0755))
s.Nil(Remove(dirPath))
}
func (s *SystemHelperTestSuite) TestChmod() {
filePath, _ := TempFile("testfile")
defer Remove(filePath.Name())
err := Write(filePath.Name(), "test data", 0644)
s.Nil(err)
s.Nil(Chmod(filePath.Name(), 0755))
s.Nil(Remove(filePath.Name()))
}
func (s *SystemHelperTestSuite) TestChown() {
filePath, _ := TempFile("testfile")
defer Remove(filePath.Name())
err := Write(filePath.Name(), "test data", 0644)
s.Nil(err)
@@ -113,6 +112,7 @@ func (s *SystemHelperTestSuite) TestChown() {
} else {
s.Nil(err)
}
s.Nil(Remove(filePath.Name()))
}
func (s *SystemHelperTestSuite) TestExists() {
@@ -125,7 +125,6 @@ func (s *SystemHelperTestSuite) TestExists() {
func (s *SystemHelperTestSuite) TestEmpty() {
filePath, _ := TempFile("testfile")
defer Remove(filePath.Name())
s.True(Empty(filePath.Name()))
if IsWindows() {
@@ -133,39 +132,39 @@ func (s *SystemHelperTestSuite) TestEmpty() {
} else {
s.True(Empty("/etc/hosts"))
}
s.Nil(Remove(filePath.Name()))
}
func (s *SystemHelperTestSuite) TestMv() {
filePath, _ := TempFile("testfile")
defer Remove(filePath.Name())
err := Write(filePath.Name(), "test data", 0644)
s.Nil(err)
newFilePath, _ := TempFile("testfile2")
defer Remove(newFilePath.Name())
filePath.Close()
newFilePath.Close()
s.Nil(Mv(filePath.Name(), newFilePath.Name()))
s.False(Exists(filePath.Name()))
s.Nil(Remove(newFilePath.Name()))
s.Nil(Remove(filePath.Name()))
}
func (s *SystemHelperTestSuite) TestCp() {
tempDir, _ := TempDir("testdir")
defer Remove(tempDir)
err := Write(filepath.Join(tempDir, "testfile"), "test data", 0644)
s.Nil(err)
s.Nil(Cp(filepath.Join(tempDir, "testfile"), filepath.Join(tempDir, "testfile2")))
s.True(Exists(filepath.Join(tempDir, "testfile2")))
s.Nil(Remove(tempDir))
}
func (s *SystemHelperTestSuite) TestSize() {
filePath, _ := TempFile("testfile")
defer Remove(filePath.Name())
err := Write(filePath.Name(), "test data", 0644)
s.Nil(err)
@@ -173,11 +172,11 @@ func (s *SystemHelperTestSuite) TestSize() {
size, err := Size(filePath.Name())
s.Nil(err)
s.Equal(int64(len("test data")), size)
s.Nil(Remove(filePath.Name()))
}
func (s *SystemHelperTestSuite) TestFileInfo() {
filePath, _ := TempFile("testfile")
defer Remove(filePath.Name())
err := Write(filePath.Name(), "test data", 0644)
s.Nil(err)
@@ -185,13 +184,12 @@ func (s *SystemHelperTestSuite) TestFileInfo() {
info, err := FileInfo(filePath.Name())
s.Nil(err)
s.Equal(filepath.Base(filePath.Name()), info.Name())
s.Nil(Remove(filePath.Name()))
}
func (s *SystemHelperTestSuite) TestUnArchiveSuccessfullyUnarchivesFile() {
file, _ := TempFile("test")
defer Remove(file.Name())
dstDir, _ := TempDir("archive")
defer Remove(dstDir)
err := Write(file.Name(), "test data", 0644)
s.Nil(err)
@@ -203,22 +201,22 @@ func (s *SystemHelperTestSuite) TestUnArchiveSuccessfullyUnarchivesFile() {
err = UnArchive(filepath.Join(dstDir, "test.zip"), dstDir)
s.Nil(err)
s.FileExists(filepath.Join(dstDir, filepath.Base(file.Name())))
s.Nil(Remove(file.Name()))
s.Nil(Remove(dstDir))
}
func (s *SystemHelperTestSuite) TestUnArchiveFailsForNonExistentFile() {
srcFile := "nonexistent.zip"
dstDir, _ := TempDir("unarchived")
defer Remove(dstDir)
err := UnArchive(srcFile, dstDir)
s.NotNil(err)
s.Nil(Remove(dstDir))
}
func (s *SystemHelperTestSuite) TestArchiveSuccessfullyArchivesFiles() {
srcFile, _ := TempFile("test")
defer Remove(srcFile.Name())
dstDir, _ := TempDir("archive")
defer Remove(dstDir)
err := Write(srcFile.Name(), "test data", 0644)
s.Nil(err)
@@ -226,13 +224,15 @@ func (s *SystemHelperTestSuite) TestArchiveSuccessfullyArchivesFiles() {
err = Archive([]string{srcFile.Name()}, filepath.Join(dstDir, "test.zip"))
s.Nil(err)
s.FileExists(filepath.Join(dstDir, "test.zip"))
s.Nil(Remove(srcFile.Name()))
s.Nil(Remove(dstDir))
}
func (s *SystemHelperTestSuite) TestArchiveFailsForNonExistentFiles() {
srcFile := "nonexistent"
dstDir, _ := TempDir("archive")
defer Remove(dstDir)
err := Archive([]string{srcFile}, filepath.Join(dstDir, "test.zip"))
s.NotNil(err)
s.Nil(Remove(dstDir))
}