diff --git a/tool/kratos-gen-bts/main.go b/tool/kratos-gen-bts/main.go index 0261db11b..415999da4 100644 --- a/tool/kratos-gen-bts/main.go +++ b/tool/kratos-gen-bts/main.go @@ -10,6 +10,7 @@ import ( "os" "path/filepath" "regexp" + "runtime" "strconv" "strings" "text/template" @@ -486,7 +487,9 @@ func main() { log.SetFlags(0) defer func() { if err := recover(); err != nil { - log.Fatalf("程序解析失败, err: %+v", err) + buf := make([]byte, 64*1024) + buf = buf[:runtime.Stack(buf, false)] + log.Fatalf("程序解析失败, err: %+v stack: %s", err, buf) } }() options := parse(pkg.NewSource(pkg.SourceText())) diff --git a/tool/kratos-gen-mc/main.go b/tool/kratos-gen-mc/main.go index c740d516c..1e8bd39b3 100644 --- a/tool/kratos-gen-mc/main.go +++ b/tool/kratos-gen-mc/main.go @@ -516,7 +516,7 @@ func main() { if err := recover(); err != nil { buf := make([]byte, 64*1024) buf = buf[:runtime.Stack(buf, false)] - log.Fatalf("程序解析失败, err: %+v stack: %s 请企业微信联系 @wangxu01", err, buf) + log.Fatalf("程序解析失败, err: %+v stack: %s", err, buf) } }() options := parse(common.NewSource(common.SourceText())) diff --git a/tool/kratos-gen-project/new.go b/tool/kratos-gen-project/new.go index 02f9d37c9..643043edc 100644 --- a/tool/kratos-gen-project/new.go +++ b/tool/kratos-gen-project/new.go @@ -2,10 +2,12 @@ package main import ( "fmt" + "io/ioutil" "os" "path/filepath" "strings" + "github.com/bilibili/kratos/tool/pkg" "github.com/urfave/cli" ) @@ -40,7 +42,9 @@ func modPath(p string) string { dir := filepath.Dir(p) for { if _, err := os.Stat(filepath.Join(dir, "go.mod")); err == nil { - return strings.TrimPrefix(filepath.Dir(p), filepath.Dir(dir)+string(os.PathSeparator)) + "/" + content, _ := ioutil.ReadFile(filepath.Join(dir, "go.mod")) + mod := pkg.RegexpReplace(`module\s+(?P[\S]+)`, string(content), "$name") + return fmt.Sprintf("%s/%s/", mod, strings.TrimPrefix(filepath.Dir(p), dir+string(os.PathSeparator))) } parent := filepath.Dir(dir) if dir == parent { diff --git a/tool/pkg/common.go b/tool/pkg/common.go index 9103ee1d0..0941203f1 100644 --- a/tool/pkg/common.go +++ b/tool/pkg/common.go @@ -118,7 +118,9 @@ func FormatCode(source string) string { // Packages get import packages func (s *Source) Packages(f *ast.Field) (res []string) { fs := f.Type.(*ast.FuncType).Params.List - fs = append(fs, f.Type.(*ast.FuncType).Results.List...) + if f.Type.(*ast.FuncType).Results != nil { + fs = append(fs, f.Type.(*ast.FuncType).Results.List...) + } var types []string resMap := make(map[string]bool) for _, field := range fs {