forked from TarsCloud/TarsGo
/
main.go
55 lines (46 loc) · 1.01 KB
/
main.go
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
//
// tars2go
//
package main
import (
"flag"
"fmt"
"os"
"strings"
)
type importPath []string
var gTarsPath string
func (t *importPath) String() string {
return strings.Join(*t, ":")
}
func (t *importPath) Set(value string) error {
*t = append(*t, value)
return nil
}
var gOutdir = flag.String("outdir", "", "which dir to put generated code")
var gImports importPath
func printhelp() {
bin := os.Args[0]
if i := strings.LastIndex(bin, "/"); i != -1 {
bin = bin[i+1:]
}
fmt.Printf("Usage: %s [flags] *.tars\n", bin)
fmt.Printf(" %s -I tars/protocol/res/endpoint [-I ...] QueryF.tars\n", bin)
flag.PrintDefaults()
}
func main() {
flag.Usage = printhelp
flag.Var(&gImports, "I", "Specify a specific import path")
flag.StringVar(&gTarsPath, "tarsPath", "tars", "Specify the tars source path.")
flag.Parse()
if flag.NArg() == 0 {
printhelp()
os.Exit(0)
}
for _, filename := range flag.Args() {
gen := NewGenGo(filename, *gOutdir)
gen.I = gImports
gen.tarsPath = gTarsPath
gen.Gen()
}
}