1 Star 0 Fork 0

go-better/go

Create your Gitee Account
Explore and code with more than 13.5 million developers,Free private repositories !:)
Sign up
文件
Clone or Download
config.go 2.21 KB
Copy Edit Raw Blame History
bughou authored 2022-03-21 20:37 +08:00 . save
package rules
import (
"io/ioutil"
"os"
"path"
"gopkg.in/yaml.v2"
dirPkg "gitee.com/go-better/dev/tool/gospec/rules/objects/dir"
pkgPkg "gitee.com/go-better/dev/tool/gospec/rules/objects/names/pkg"
filePkg "gitee.com/go-better/dev/tool/gospec/rules/objects/file"
funcPkg "gitee.com/go-better/dev/tool/gospec/rules/objects/func"
structPkg "gitee.com/go-better/dev/tool/gospec/rules/objects/struct"
constPkg "gitee.com/go-better/dev/tool/gospec/rules/objects/names/const"
labelPkg "gitee.com/go-better/dev/tool/gospec/rules/objects/names/label"
typePkg "gitee.com/go-better/dev/tool/gospec/rules/objects/names/type"
varPkg "gitee.com/go-better/dev/tool/gospec/rules/objects/names/var"
)
var config = configT{
Dir: &dirPkg.Dir,
Pkg: &pkgPkg.Pkg,
File: &filePkg.File,
TestFile: &filePkg.TestFile,
Func: &funcPkg.Func,
FuncInTest: &funcPkg.FuncInTest,
Struct: &structPkg.Struct,
Const: &constPkg.Const,
LocalConst: &constPkg.LocalConst,
Var: &varPkg.Var,
LocalVar: &varPkg.LocalVar,
Type: &typePkg.Type,
LocalType: &typePkg.LocalType,
Label: &labelPkg.Label,
}
type configT struct {
Dir *dirPkg.Rule
Pkg *pkgPkg.Rule
File *filePkg.Rule
TestFile *filePkg.Rule
Func *funcPkg.Rule
FuncInTest *funcPkg.Rule `yaml:"funcInTest"`
Struct *structPkg.Rule
Const *constPkg.Rule
LocalConst *constPkg.Rule `yaml:"localConst"`
Var *varPkg.Rule
LocalVar *varPkg.Rule `yaml:"localVar"`
Type *typePkg.Rule
LocalType *typePkg.Rule `yaml:"localType"`
Label *labelPkg.Rule
}
// load config for rules
func LoadConfig() {
p := getConfigPath()
if p == `` {
return
}
content, err := ioutil.ReadFile(p)
if err != nil {
panic(err)
}
if err := yaml.Unmarshal(content, &config); err != nil {
panic(err)
}
}
func getConfigPath() string {
dir, err := os.Getwd()
if err != nil {
panic(err)
}
for ; dir != `/`; dir = path.Dir(dir) {
if p := testConfig(dir); p != `` {
return p
}
}
return testConfig(dir)
}
func testConfig(dir string) string {
p := path.Join(dir, `.gospec.yml`)
if _, err := os.Stat(p); err == nil {
return p
} else if os.IsNotExist(err) {
return ``
} else {
panic(err)
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/go-better/go.git
git@gitee.com:go-better/go.git
go-better
go
go
d31700df43a9

Search