62 lines
1.6 KiB
Go
62 lines
1.6 KiB
Go
package grlogs
|
||
|
||
//传入一个字符串,返回一个加密后的md5
|
||
func Md5(str string) string {
|
||
data := []byte(str)
|
||
has := md5.Sum(data)
|
||
md5str := fmt.Sprintf("%x", has) //将[]byte转成16进制
|
||
return md5str
|
||
}
|
||
|
||
func Md5File(filePath string) string {
|
||
hash := md5.New()
|
||
data, _ := ioutil.ReadFile(filePath)
|
||
hash.Write([]byte(data))
|
||
md5str := hex.EncodeToString(hash.Sum(nil))
|
||
return md5str
|
||
}
|
||
|
||
func GetPackageName() string {
|
||
packpath := reflect.TypeOf(Empty{}).PkgPath()
|
||
if idx := strings.Index(packpath, "/"); idx > 0 {
|
||
return packpath[:idx]
|
||
} else {
|
||
return packpath
|
||
}
|
||
}
|
||
|
||
func GetCwd(filepath ...string) string {
|
||
_, filename1, _, _ := runtime.Caller(0)
|
||
filename2, _ := os.Getwd()
|
||
if !strings.HasSuffix(filename2, GetPackageName()) {
|
||
paths := append([]string{path.Dir(filename1), "/../../"}, filepath...)
|
||
return path.Join(paths...)
|
||
} else {
|
||
paths := append([]string{filename2, "/"}, filepath...)
|
||
return path.Join(paths...)
|
||
}
|
||
}
|
||
|
||
func SetCwd() error {
|
||
_, filename1, _, _ := runtime.Caller(0)
|
||
filename2, _ := os.Getwd()
|
||
if !strings.HasSuffix(filename2, GetPackageName()) {
|
||
paths := append([]string{path.Dir(filename1), "/../../"})
|
||
return os.Chdir(path.Join(paths...))
|
||
} else {
|
||
paths := append([]string{filename2, "/"})
|
||
return os.Chdir(path.Join(paths...))
|
||
}
|
||
}
|
||
|
||
func RandString(length int) string {
|
||
str := "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||
bytes := []byte(str)
|
||
result := []byte{}
|
||
r := rand.New(rand.NewSource(time.Now().UnixNano()))
|
||
for i := 0; i < length; i++ {
|
||
result = append(result, bytes[r.Intn(len(bytes))])
|
||
}
|
||
return string(result)
|
||
}
|