代码拉取完成,页面将自动刷新
package utils
import (
"gitee.com/pheker/learn-go/tool/log"
"gopkg.in/yaml.v2"
"io/ioutil"
"math/rand"
"os"
"os/exec"
"path/filepath"
"strings"
"time"
)
// GetExeDir
// 获取当前exe所在文件夹
func GetExeDir() string {
dir := filepath.Dir(os.Args[0])
abs, _ := filepath.Abs(dir)
return ResolvePath(abs)
}
// GetExeName
// 获取当前exe文件名(包含后缀名)
func GetExeName() string {
dir, _ := exec.LookPath(os.Args[0])
dir = ResolvePath(dir)
index := strings.LastIndex(dir, "/")
if index != -1 {
return dir[index+1:]
}
return dir
}
// GetExeFullPath
// 获取当前exe文件路径
func GetExeFullPath() string {
dir := GetExeDir()
name := GetExeName()
return strings.Join([]string{dir, "/", name}, "")
}
// ResolvePath
// 转换window路径分隔符为Unix路径分隔符
func ResolvePath(path string) string {
return strings.Replace(path, "\\", "/", -1)
}
type Pair struct {
K interface{} `yaml:"k" json:"k"`
V interface{} `yaml:"v" json:"v"`
}
func LoadYaml(yamlPath string, config interface{}) error {
byteConf, err := ioutil.ReadFile(yamlPath)
if err != nil {
return err
}
err = yaml.Unmarshal(byteConf, config)
return err
}
func Shuffle(ss []string) {
rand.Seed(time.Now().UnixNano())
rand.Shuffle(len(ss), func(i, j int) { ss[i], ss[j] = ss[j], ss[i] })
}
func CurrentPath() (string, error) {
return os.Getwd()
}
func InitLog() (string, error) {
dir, err := CurrentPath()
if err != nil {
return dir, err
}
var name = filepath.Base(dir)
// print log in std and log file
logPath := filepath.Join(dir, name+".log")
logFile, err := os.OpenFile(logPath, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 666)
if err != nil {
log.Error(err.Error())
return dir, err
}
log.AddOutput(logFile)
log.EnableAnsiColor(false)
log.Infof("dir: %s, name: %s\n", dir, name)
log.Infof("logpath: %s", logPath)
return dir, nil
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。