background/vendor/git.jiaxianghudong.com/go/utils/conf.go
2019-01-28 11:19:49 +08:00

81 lines
1.4 KiB
Go

package utils
import (
"errors"
"io/ioutil"
"os"
"os/exec"
"path/filepath"
)
const (
FILE_OPEN_TYPE_READ int = 0
FILE_OPEN_TYPE_WRITE int = 1
FILE_OPEN_TYPE_APPEND int = 2
)
// ReadTextFile 读取文件
func ReadTextFile(path string) string {
fp, err := os.Open(path)
if nil != err {
return ""
}
defer fp.Close()
d, err := ioutil.ReadAll(fp)
if nil != err {
return ""
}
return string(d)
}
/*
* 读取配置文件
*/
func ReadConfFile(file string) string {
return ReadTextFile(GetConfPath(file))
}
// 获取配置文件路径
func GetConfPath(fname string) string {
// 绝对路径
if len(fname) > 2 && ('/' == fname[0] || ':' == fname[1]) {
return fname
}
return GetFilePathBaseExe("./" + fname)
}
// 以exe为根节点获取文件路径
func GetFilePathBaseExe(fname string) string {
// 绝对路径
if len(fname) > 2 && ('/' == fname[0] || ':' == fname[1]) {
return fname
}
// 相对路径
file, _ := exec.LookPath(os.Args[0])
return filepath.Join(filepath.Dir(file), fname)
}
// 创建目录
func CreateDir(dirName string) error {
// 判断目录是否存在
if _, err := os.Stat(dirName); false == os.IsNotExist(err) {
return nil
}
// 分解上层目录
pdir := filepath.Dir(dirName)
if "" == pdir {
return errors.New("error dir format")
}
// 判断目录是否存在
if _, err := os.Stat(pdir); os.IsNotExist(err) {
err = CreateDir(pdir)
if nil != err {
return err
}
}
return os.Mkdir(dirName, 0755)
}