Refactor: Rename NanoKVM to BatchuKVM and update server URL

This commit is contained in:
2025-12-09 20:35:38 +09:00
commit 8cf674c9e5
396 changed files with 54380 additions and 0 deletions

78
server/utils/move_file.go Normal file
View File

@@ -0,0 +1,78 @@
package utils
import (
"io"
"os"
"path/filepath"
"strings"
)
func MoveFile(src, dst string) error {
if err := os.MkdirAll(filepath.Dir(dst), 0o755); err != nil {
return err
}
err := os.Rename(src, dst)
if err != nil {
if strings.Contains(err.Error(), "invalid cross-device link") {
return MoveFileCrossFS(src, dst)
}
return err
}
return nil
}
func MoveFileCrossFS(src, dst string) error {
tmp := dst + ".tmp"
srcFile, err := os.Open(src)
if err != nil {
return err
}
tmpFile, err := os.Create(tmp)
if err != nil {
_ = srcFile.Close()
return err
}
_, err = io.Copy(tmpFile, srcFile)
if err != nil {
_ = srcFile.Close()
_ = tmpFile.Close()
return err
}
_ = srcFile.Close()
_ = tmpFile.Close()
fi, err := os.Stat(src)
if err != nil {
return err
}
err = os.Chmod(tmp, fi.Mode())
if err != nil {
return err
}
_ = os.Remove(src)
err = os.Rename(tmp, dst)
if err != nil {
return err
}
return nil
}
func MoveFilesRecursively(src, dst string) error {
return filepath.Walk(src, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
fileName := strings.Replace(path, src, "", 1)
dstName := dst + fileName
fileInfo, err := os.Stat(path)
if err != nil {
return err
}
if fileInfo.IsDir() {
return os.MkdirAll(dstName, fileInfo.Mode())
}
return MoveFile(path, dstName)
})
}