init commit da

This commit is contained in:
huker667 committed 2026-07-15 14:33:08 +03:00
1 parent d64b4f3983
commit 22359129af
5 files changed
+300 -35

No files matched your search

+60
View File
@@ -3,9 +3,12 @@ package helpers
import (
"fmt"
"strings"
"path/filepath"
"math/rand"
"time"
"strconv"
"os"
"io"
)
var r = rand.New(rand.NewSource(time.Now().UnixNano()))
@@ -42,3 +45,60 @@ func RandStr(n int) string {
}
return string(b)
}
func CopyDir(src, dst string) error {
return filepath.Walk(src, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
rel, err := filepath.Rel(src, path)
if err != nil {
return err
}
target := filepath.Join(dst, rel)
mode := info.Mode()
switch {
case mode&os.ModeSymlink != 0:
link, err := os.Readlink(path)
if err != nil {
return err
}
return os.Symlink(link, target)
case info.IsDir():
return os.MkdirAll(target, 0755)
default:
return CopyFile(path, target)
}
})
}
func CopyFile(src, dst string) error {
in, err := os.Open(src)
if err != nil {
return err
}
defer in.Close()
out, err := os.Create(dst)
if err != nil {
return err
}
defer out.Close()
_, err = io.Copy(out, in)
if err != nil {
return err
}
si, err := os.Stat(src)
if err != nil {
return err
}
return os.Chmod(dst, si.Mode())
}