-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.go
More file actions
57 lines (51 loc) · 1.63 KB
/
main.go
File metadata and controls
57 lines (51 loc) · 1.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package main
import (
"flag"
"fmt"
"github.com/finishy1995/codegenerator/dataloader"
"github.com/finishy1995/codegenerator/extension/dataloader/proto"
"github.com/finishy1995/codegenerator/extension/logic/datetime"
"github.com/finishy1995/codegenerator/extension/logic/numberhelper"
"github.com/finishy1995/codegenerator/extension/logic/stringhelper"
"github.com/finishy1995/codegenerator/generator"
"github.com/finishy1995/codegenerator/generator/define"
"github.com/finishy1995/codegenerator/generator/logic"
"github.com/finishy1995/codegenerator/library/log"
"os"
"os/exec"
)
var protoPath = flag.String("proto", "./account.proto", "the proto file path")
func main() {
flag.Parse()
//log.SetLevel(log.DEBUG)
dataloader.AddDataLoader(".proto", proto.NewLoader())
data := dataloader.LoadFromFile(*protoPath)
d := define.NewDictionary()
d.SetData(data)
d.AddKeyValuePair(".PathSuffix", "ProjectX/service/")
d.AddKeyValuePair(".PathBase", "ProjectX/base")
logic.RegisterAll()
datetime.Register()
stringhelper.Register()
numberhelper.Register()
m := generator.NewMission(d,
"./tpl",
fmt.Sprintf("./%s", d.FindOrReturnDefault(".package", "service")))
m.Run()
// Generate grpc file using protoc
serviceName := d.FindOrReturnDefault(".package", "service")
path := fmt.Sprintf("./%s/pb", serviceName)
err := os.MkdirAll(path, 0660)
if err != nil {
log.Error("cannot create pb dir, error: %s", err.Error())
return
}
cmd := exec.Command("protoc",
fmt.Sprintf("--go_out=%s", path),
fmt.Sprintf("--go-grpc_out=%s", path),
*protoPath,
)
if err := cmd.Run(); err != nil {
log.Error("protoc failed, error: %s", err.Error())
}
}