GoSungrow/mmGit/utils.go
2022-02-22 10:56:05 +11:00

88 lines
1.3 KiB
Go

package mmGit
import (
"GoSungrow/Only"
"crypto/md5"
"encoding/hex"
"errors"
"fmt"
"os"
)
func IsDirExists(path string) (bool, error) {
var ok bool
var err error
for range Only.Once {
if path == "" {
err = errors.New("empty git dir path")
break
}
var fi os.FileInfo
fi, err = os.Stat(path)
if os.IsNotExist(err) {
err = nil
break
}
if !fi.IsDir() {
err = errors.New("git path is not a dir")
break
}
ok = true
}
return ok, err
}
func PrintError(err error) {
if err == nil {
fmt.Println("OK")
return
}
fmt.Printf("\nERROR: %s\n", err)
}
func GetHash(data string) string {
var ret string
for range Only.Once {
h := md5.New()
h.Write([]byte(data))
ret = hex.EncodeToString(h.Sum(nil))
}
return ret
}
func WriteTempFile(path string, data string) (string, error) {
var fn string
var err error
for range Only.Once {
fn = fmt.Sprintf("%s/%s", os.TempDir(), path)
fmt.Printf("Writing file %s ...", fn)
var fh *os.File
fh, err = os.OpenFile(fn, os.O_RDWR|os.O_CREATE, 0664)
if err != nil {
fmt.Printf("%s\n", err)
break
}
defer fh.Close()
_, err = fh.Write([]byte(data))
if err != nil {
fmt.Printf("%s\n", err)
break
}
fmt.Println("OK")
//fmt.Printf("%v\n", data)
}
return fn, err
}