2021-11-16 22:09:01 +08:00

52 lines
906 B
Go

/**
为确保运行结果正常输出,请不要移动此文件
*/
package base
import (
"errors"
"path/filepath"
"runtime"
)
// 获取项目基准目录
func baseDir(p string) (string, error) {
_, file, _, ok := runtime.Caller(0)
if !ok {
return "", errors.New("runtime.Caller error.")
}
dir:= filepath.Dir( filepath.Dir( filepath.Dir( file ) ) )
return dir+ p, nil
}
// 获取项目根目录
func ProjectDir(p string) string {
if p=="" {
p= "/"
}
dir, err:= baseDir(p)
if err!= nil {
panic(err)
}
return dir
}
// 获取各个常用目录
func ConfigDir() string {
return ProjectDir("/config/")
}
func ScriptDir() string {
return ProjectDir("/script/")
}
func BinDir() string {
return ProjectDir("/bin/")
}
func LogDir() string {
return ProjectDir("/logs/")
}
func PkgDir() string {
return ProjectDir("/pkg/")
}
func InternalDir() string {
return ProjectDir("/internal/")
}