mirror of
https://github.com/eiblog/eiblog.git
synced 2026-02-10 00:22:27 +08:00
55 lines
1012 B
Go
55 lines
1012 B
Go
// Package config provides ...
|
|
package config
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
)
|
|
|
|
// RunMode 列表
|
|
const (
|
|
RunModeDev RunMode = "dev" // 开发环境
|
|
RunModeProd RunMode = "pro" // 生产环境
|
|
)
|
|
|
|
// RunMode 运行模式
|
|
type RunMode string
|
|
|
|
// IsReleaseMode 是否
|
|
func (mode RunMode) IsReleaseMode() bool {
|
|
return mode == RunModeProd
|
|
}
|
|
|
|
// IsDevMode 是否时开发模式
|
|
func (mode RunMode) IsDevMode() bool {
|
|
return mode == RunModeDev
|
|
}
|
|
|
|
// IsRunMode 是否是runmode
|
|
func (mode RunMode) IsRunMode() bool {
|
|
return mode == RunModeDev || mode == RunModeProd
|
|
}
|
|
|
|
// WalkWorkDir walk work dir
|
|
func WalkWorkDir() (string, error) {
|
|
gopath := os.Getenv("GOPATH")
|
|
workDir, err := os.Getwd()
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
// find work dir, try 3 times
|
|
for gopath != workDir && workDir != "/" {
|
|
dir := filepath.Join(workDir, "etc")
|
|
|
|
_, err := os.Stat(dir)
|
|
if err == nil {
|
|
break
|
|
}
|
|
if !os.IsNotExist(err) {
|
|
return "", err
|
|
}
|
|
workDir = filepath.Dir(workDir)
|
|
}
|
|
return workDir, nil
|
|
}
|