use yaml, and detect go.mod in current dir

master
kevin 4 years ago
parent 229544f3ca
commit 1c24e71568

@ -143,15 +143,17 @@ func createGoModFileIfNeed(dir string) {
var tempPath = absDir var tempPath = absDir
var hasGoMod = false var hasGoMod = false
for { for {
if tempPath == filepath.Dir(tempPath) { if util.FileExists(filepath.Join(tempPath, goModeIdentifier)) {
hasGoMod = true
break break
} }
tempPath = filepath.Dir(tempPath) tempPath = filepath.Dir(tempPath)
if util.FileExists(filepath.Join(tempPath, goModeIdentifier)) { if tempPath == filepath.Dir(tempPath) {
hasGoMod = true
break break
} }
} }
if !hasGoMod { if !hasGoMod {
gopath := os.Getenv("GOPATH") gopath := os.Getenv("GOPATH")
parent := path.Join(gopath, "src") parent := path.Join(gopath, "src")

@ -13,15 +13,14 @@ import (
const ( const (
defaultPort = 8888 defaultPort = 8888
etcDir = "etc" etcDir = "etc"
etcTemplate = `{ etcTemplate = `Name: {{.serviceName}}
"Name": "{{.serviceName}}", Host: {{.host}}
"Host": "{{.host}}", Port: {{.port}}
"Port": {{.port}} `
}`
) )
func genEtc(dir string, api *spec.ApiSpec) error { func genEtc(dir string, api *spec.ApiSpec) error {
fp, created, err := util.MaybeCreateFile(dir, etcDir, fmt.Sprintf("%s.json", api.Service.Name)) fp, created, err := util.MaybeCreateFile(dir, etcDir, fmt.Sprintf("%s.yaml", api.Service.Name))
if err != nil { if err != nil {
return err return err
} }

@ -21,7 +21,7 @@ import (
{{.importPackages}} {{.importPackages}}
) )
var configFile = flag.String("f", "etc/{{.serviceName}}.json", "the config file") var configFile = flag.String("f", "etc/{{.serviceName}}.yaml", "the config file")
func main() { func main() {
flag.Parse() flag.Parse()

@ -28,32 +28,38 @@ func getParentPackage(dir string) (string, error) {
var tempPath = absDir var tempPath = absDir
var hasGoMod = false var hasGoMod = false
for { for {
if tempPath == filepath.Dir(tempPath) {
break
}
tempPath = filepath.Dir(tempPath)
if goctlutil.FileExists(filepath.Join(tempPath, goModeIdentifier)) { if goctlutil.FileExists(filepath.Join(tempPath, goModeIdentifier)) {
tempPath = filepath.Dir(tempPath) tempPath = filepath.Dir(tempPath)
rootPath = absDir[len(tempPath)+1:] rootPath = absDir[len(tempPath)+1:]
hasGoMod = true hasGoMod = true
break break
} }
if tempPath == filepath.Dir(tempPath) {
break
}
tempPath = filepath.Dir(tempPath)
if tempPath == string(filepath.Separator) { if tempPath == string(filepath.Separator) {
break break
} }
} }
if !hasGoMod {
gopath := os.Getenv("GOPATH") if hasGoMod {
parent := path.Join(gopath, "src") return rootPath, nil
pos := strings.Index(absDir, parent)
if pos < 0 {
fmt.Printf("%s not in gomod project path, or not in GOPATH of %s directory\n", absDir, gopath)
tempPath = filepath.Dir(absDir)
rootPath = absDir[len(tempPath)+1:]
} else {
rootPath = absDir[len(parent)+1:]
}
} }
gopath := os.Getenv("GOPATH")
parent := path.Join(gopath, "src")
pos := strings.Index(absDir, parent)
if pos < 0 {
fmt.Printf("%s not in go.mod project path, or not in GOPATH of %s directory\n", absDir, gopath)
tempPath = filepath.Dir(absDir)
rootPath = absDir[len(tempPath)+1:]
} else {
rootPath = absDir[len(parent)+1:]
}
return rootPath, nil return rootPath, nil
} }

Loading…
Cancel
Save