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
71
72
73
74
75
76
package main
import (
"bytes"
"fmt"
"github.com/fvbock/endless"
"github.com/gin-gonic/gin"
"os"
"os/exec"
_ "system_pay/docs"
logger "system_pay/pkg/logging"
routers "system_pay/router"
"system_pay/setting"
)
// @title 谛宝多多平台
// @version 1.0
// @description 采购订单项目
// @securityDefinitions.apikey ApiKeyAuth
// @in header
// @name Authorization
func main() {
if os.Getenv("runmode") == "release" {
gin.SetMode(gin.ReleaseMode)
} else {
gin.SetMode(gin.DebugMode)
}
// 设置
if err := setting.Init(); err != nil {
panic("load config failed, new_error:"+ err.Error())
//fmt.Printf("load config failed, new_error:%v\n", new_error)
//return
}
if gin.Mode() == gin.TestMode || gin.Mode() == gin.DebugMode {
//自动更新swagger
//runCommand()
}
// 日志
if err := logger.Init(setting.Conf.LogSetting); err != nil {
panic("init logger failed, new_error:"+ err.Error())
//fmt.Printf("init logger failed, new_error:%v\n", new_error)
//return
}
// 注册路由
r := routers.InitRouter()
// 优雅启停
err := endless.ListenAndServe(setting.GetPort(), r)
if err != nil {
panic("route initialization failed, new_error:"+ err.Error())
//fmt.Println("route_initialization_failed" + new_error.Error())
//return
}
}
// runCommand 重启时候更新swagger
func runCommand() {
cmd := exec.Command("swag", "init")
fmt.Println("Cmd", cmd.Args)
var out bytes.Buffer
cmd.Stdout = &out
cmd.Stderr = os.Stderr
err := cmd.Start()
if err != nil {
fmt.Println(err)
}
fmt.Println(out.String())
}