-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathutil.go
64 lines (55 loc) · 1.2 KB
/
util.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package tdb
import (
"math/rand"
"os"
"path/filepath"
"strings"
"github.com/drkaka/lg"
"go.uber.org/zap/zapcore"
)
const (
letterBytes = "0123456789abcdefghijklmnopqrstuvwxyz"
letterLen = 36
)
func randBytes(n int) []byte {
b := make([]byte, n)
for i := range b {
b[i] = letterBytes[rand.Intn(letterLen)]
}
return b
}
// checkFolderExist
// return an error if folder is a file.
func checkFolderExist(folder string) (bool, error) {
if stat, err := os.Stat(folder); err != nil {
if os.IsNotExist(err) {
return false, nil
}
return false, err
} else if !stat.IsDir() {
return false, ErrPathNotFolder
}
return true, nil
}
// createFolder to create a folder, if exist, do nothing
// return an error if folder is a file.
func createFolder(folder string) error {
exist, err := checkFolderExist(folder)
if err != nil {
return err
}
if !exist {
err = os.MkdirAll(folder, os.ModePerm)
}
return err
}
// get the file name without ext and path
func getFileName(fPath string) string {
baseName := filepath.Base(fPath)
return strings.TrimSuffix(baseName, filepath.Ext(baseName))
}
func p(msg string, fields ...zapcore.Field) {
if lg.L(nil) != nil {
lg.L(nil).Debug(msg, fields...)
}
}