gokins/main.go

83 lines
1.6 KiB
Go
Raw Normal View History

2020-07-08 10:09:59 +08:00
package main
2020-07-08 11:39:36 +08:00
import (
2020-10-09 16:59:03 +08:00
"flag"
2020-10-11 12:25:41 +08:00
"fmt"
2020-07-08 11:39:36 +08:00
"gokins/comm"
2020-09-30 20:26:50 +08:00
"gokins/core"
2020-10-02 16:04:26 +08:00
"gokins/mgr"
2020-07-08 15:39:23 +08:00
"gokins/route"
2020-09-30 20:26:50 +08:00
"gokins/service/dbService"
2020-07-08 15:39:23 +08:00
"os"
"path/filepath"
2020-09-30 20:26:50 +08:00
"github.com/gin-gonic/gin"
2020-07-08 11:39:36 +08:00
)
2020-10-11 12:25:41 +08:00
var clearPass = ""
2020-07-08 15:39:23 +08:00
func init() {
path, err := os.Executable()
if err != nil {
println("path err:" + err.Error())
return
}
println("path:" + path)
2020-10-09 16:59:03 +08:00
comm.Path = path
2020-07-08 15:39:23 +08:00
dir, err := filepath.Abs(filepath.Dir(path))
if err != nil {
println("dir err:" + err.Error())
return
}
println("dir:" + dir)
2020-10-09 16:59:03 +08:00
flag.StringVar(&comm.Dir, "d", dir, "数据目录")
2020-10-09 17:10:13 +08:00
flag.StringVar(&comm.Host, "bind", ":8030", "绑定地址")
2020-10-11 12:29:18 +08:00
flag.StringVar(&clearPass, "clp", "", "清除用户密码(请先关闭服务在执行)")
2020-10-09 16:59:03 +08:00
flag.Parse()
2020-07-08 11:39:36 +08:00
comm.Gin = gin.Default()
2020-07-08 15:39:23 +08:00
}
func main() {
err := comm.InitDb()
if err != nil {
println("InitDb err:" + err.Error())
return
}
2020-10-11 12:25:41 +08:00
if clearUPass() {
return
}
2020-09-30 20:26:50 +08:00
jwtKey := dbService.GetParam("jwt-key")
jkey := jwtKey.GetString("key")
if jkey == "" {
jkey = core.RandomString(32)
jwtKey.Set("key", jkey)
dbService.SetParam("jwt-key", jwtKey)
}
core.JwtKey = jkey
2020-07-08 15:39:23 +08:00
route.Init()
2020-10-02 16:04:26 +08:00
mgr.ExecMgr.Start()
2020-10-09 16:59:03 +08:00
err = comm.Gin.Run(comm.Host)
2020-07-08 12:05:33 +08:00
if err != nil {
2020-07-08 15:39:23 +08:00
println("gin run err:" + err.Error())
2020-07-08 12:05:33 +08:00
}
2020-10-02 16:04:26 +08:00
mgr.Cancel()
2020-07-08 10:09:59 +08:00
}
2020-10-11 12:25:41 +08:00
func clearUPass() bool {
if clearPass != "" {
usr := dbService.FindUserName(clearPass)
if usr == nil {
fmt.Printf("user(%s) not found\n", clearPass)
} else {
usr.Pass = ""
_, err := comm.Db.Cols("pass").Where("id=?", usr.Id).Update(usr)
if err != nil {
fmt.Println("clear password err:" + err.Error())
} else {
fmt.Println("clear password ok")
}
}
return true
}
return false
}