From a43bf98e21adf17a32c048f47be21c9e58abbfb8 Mon Sep 17 00:00:00 2001 From: jay Date: Wed, 19 Sep 2018 20:23:39 +0800 Subject: [PATCH] add flag options, add schema submodule --- .gitmodules | 3 +++ Dockerfile | 12 ++++++++++++ main.go | 16 +++++++++++++++- module/cmd/cmd.go | 6 ++++++ module/options/options.go | 28 ++++++++++++++++++++++++++++ router/routes/routes.go | 7 ++++++- schema | 1 + 7 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 .gitmodules create mode 100644 Dockerfile create mode 100644 module/cmd/cmd.go create mode 100644 module/options/options.go create mode 160000 schema diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..3ecba8c --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "schema"] + path = schema + url = https://git.trj.tw/mtfos/mtfosbot_schema diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..fd96a95 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,12 @@ +FROM golang:1.11-alpine3.8 as builder +WORKDIR /go/src/git.trj.tw/golang/mtfosbot +COPY . . +RUN GOOS=linux go build -o mtfosbot . + +FROM alpine:latest +RUN apk add --no-cache ca-certificates +WORKDIR /data +COPY --from=builder /go/src/git.trj.tw/golang/mtfosbot/mtfosbot /usr/bin +COPY config.default.yml config.yml +EXPOSE 10230 +CMD ["/usr/bin/mtfosbot", "-f", "/data/config.yml", "-dbtool"] \ No newline at end of file diff --git a/main.go b/main.go index 15544c6..e02e7bf 100644 --- a/main.go +++ b/main.go @@ -3,12 +3,14 @@ package main import ( "encoding/gob" "errors" + "flag" "log" "os" "path" "strconv" "strings" + "git.trj.tw/golang/mtfosbot/module/options" "git.trj.tw/golang/mtfosbot/module/utils" "git.trj.tw/golang/mtfosbot/model" @@ -21,8 +23,20 @@ import ( var server *gin.Engine +func init() { + options.RegFlag() + flag.Parse() +} + func main() { - err := config.LoadConfig() + runOptions := options.GetFlag() + + if runOptions.Help { + flag.Usage() + return + } + + err := config.LoadConfig(runOptions.Config) if err != nil { log.Fatal(err) } diff --git a/module/cmd/cmd.go b/module/cmd/cmd.go new file mode 100644 index 0000000..88eedce --- /dev/null +++ b/module/cmd/cmd.go @@ -0,0 +1,6 @@ +package cmd + +// DBTool - deploy database schemas +func DBTool() { + +} diff --git a/module/options/options.go b/module/options/options.go new file mode 100644 index 0000000..8d7e41d --- /dev/null +++ b/module/options/options.go @@ -0,0 +1,28 @@ +package options + +import ( + "flag" +) + +// Options - flag options +type Options struct { + Help bool + Config string + DBTool bool +} + +var opts *Options + +// RegFlag - register flag +func RegFlag() { + opts = &Options{} + flag.StringVar(&opts.Config, "config", "", "config file path (defualt {PWD}/config.yml") + flag.StringVar(&opts.Config, "f", "", "config file path (short) (defualt {PWD}/config.yml") + flag.BoolVar(&opts.DBTool, "dbtool", false, "run dbtool deploy schema") + flag.BoolVar(&opts.Help, "help", false, "show help") +} + +// GetFlag - +func GetFlag() *Options { + return opts +} diff --git a/router/routes/routes.go b/router/routes/routes.go index d8b5058..4e0b642 100644 --- a/router/routes/routes.go +++ b/router/routes/routes.go @@ -4,6 +4,7 @@ import ( "fmt" "log" + "git.trj.tw/golang/mtfosbot/module/config" "git.trj.tw/golang/mtfosbot/module/context" "git.trj.tw/golang/mtfosbot/router/api" "git.trj.tw/golang/mtfosbot/router/google" @@ -19,7 +20,11 @@ import ( func NewServ() *gin.Engine { r := gin.New() - store, err := sessions.NewRedisStore(10, "tcp", "localhost:6379", "", []byte("seckey")) + conf := config.GetConf() + + redisStr := fmt.Sprintf("%s:%d", conf.Redis.Host, conf.Redis.Port) + + store, err := sessions.NewRedisStore(10, "tcp", redisStr, "", []byte("seckey")) if err != nil { log.Fatal(err) } diff --git a/schema b/schema new file mode 160000 index 0000000..33f8a1d --- /dev/null +++ b/schema @@ -0,0 +1 @@ +Subproject commit 33f8a1dc6ea0de9323e9a75f5366fa68d8325774