-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.go
70 lines (62 loc) · 1.63 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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/* ######################################################################
# Author: (zfly1207@126.com)
# Created Time: 2018-11-14 12:50:43
# File Name: main.go
# Description:
####################################################################### */
package main
import (
"flag"
"fmt"
"os"
"strings"
"ant-coder/coder"
"ant-coder/coder/config"
)
// pass through when build project, go build -ldflags "main.__version__ 1.2.1" app
var coders = map[string]coder.Coder{
"go_model": coder.NewGoModelCoder(),
"go_ui": coder.NewGoUiCoder(),
"go_loop_worker": coder.NewGoLoopWorkerCoder(),
"go_crontab_worker": coder.NewGoCrontabWorkerCoder(),
"go_rpcx_server": coder.NewGoRpcxServerCoder(),
}
var (
__version__ string
pwd = flag.String("d", "", "work directory")
verbose = flag.String("v", "false", "enable verbose logging [false]")
scene string
)
func init() {
var scenes []string
for scene, _ := range coders {
scenes = append(scenes, scene)
}
flag.StringVar(&scene, "s", "", fmt.Sprintf("coder scene (options: %s)", strings.Join(scenes, "|")))
flag.Parse()
if len(*pwd) == 0 {
*pwd, _ = os.Getwd()
}
os.Setenv("VERSION", __version__)
os.Setenv("WORKDIR", *pwd)
os.Setenv("VERBOSE", *verbose)
if len(scene) == 0 {
fmt.Println("you must specify `-s` option")
os.Exit(-1)
}
if err := config.SetPathAndLoad(os.Getenv("HOME")); err != nil {
fmt.Println(err)
os.Exit(-1)
}
}
func main() {
c, ok := coders[scene]
if !ok {
fmt.Println("you specify coder sense not support.")
os.Exit(-1)
}
if err := coder.NewExecutor(c).Do(); err != nil {
fmt.Println(err)
os.Exit(-1)
}
}