mirror of
https://github.com/MickMake/GoSungrow.git
synced 2025-03-23 08:01:43 +01:00
88 lines
1.3 KiB
Go
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
|
|
}
|