Skip to content

Commit a04aafe

Browse files
committed
[sniper init] 重构 getModuleName()
1 parent 7b9b430 commit a04aafe

File tree

1 file changed

+8
-18
lines changed

1 file changed

+8
-18
lines changed

cmd/sniper/rpc/cmd.go

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,29 @@ package rpc
33
// 几乎所有代码由欧阳完成,我只是搬运过来。
44

55
import (
6-
"bufio"
76
"fmt"
87
"go/ast"
98
"go/parser"
109
"go/token"
11-
"io/ioutil"
1210
"os"
1311
"os/exec"
1412
"path/filepath"
15-
"strings"
1613

1714
"github.com/dave/dst"
1815
"github.com/dave/dst/decorator"
1916
"github.com/spf13/cobra"
17+
"golang.org/x/mod/modfile"
2018
)
2119

2220
var (
23-
// 服务相关变量
2421
rootDir, rootPkg, server, service, version string
2522

2623
twirpFile, serverFile, rpcPkg string
2724
)
2825

2926
func init() {
3027
wd, _ := os.Getwd()
31-
module := getModuleName(wd)
28+
module := getModuleName()
3229

3330
Cmd.Flags().StringVar(&rootDir, "root", wd, "项目根目录")
3431
Cmd.Flags().StringVar(&rootPkg, "package", module, "项目总包名")
@@ -39,25 +36,18 @@ func init() {
3936
Cmd.MarkFlagRequired("server")
4037
}
4138

42-
func getModuleName(wd string) (module string) {
43-
f, err := os.Open(wd + "/go.mod")
39+
func getModuleName() string {
40+
b, err := os.ReadFile("go.mod")
4441
if err != nil {
45-
return
42+
panic(err)
4643
}
47-
defer f.Close()
4844

49-
l, err := bufio.NewReader(f).ReadString('\n')
45+
f, err := modfile.Parse("", b, nil)
5046
if err != nil {
5147
panic(err)
5248
}
53-
fields := strings.Fields(l)
54-
55-
module = "sniper"
56-
if len(fields) == 2 {
57-
module = fields[1]
58-
}
5949

60-
return module
50+
return f.Module.Mod.Path
6151
}
6252

6353
// Cmd 接口生成工具
@@ -162,7 +152,7 @@ func createDirAndFile(path string) (*os.File, error) {
162152
}
163153

164154
func parseAST(file string) (*ast.File, *token.FileSet) {
165-
b, err := ioutil.ReadFile(file)
155+
b, err := os.ReadFile(file)
166156
if err != nil {
167157
panic(err)
168158
}

0 commit comments

Comments
 (0)