diff --git a/srv/cmd/gatekeeper/wire.go b/srv/cmd/gatekeeper/wire.go index 605e1ed..e69de29 100644 --- a/srv/cmd/gatekeeper/wire.go +++ b/srv/cmd/gatekeeper/wire.go @@ -1,23 +0,0 @@ -//go:build wireinject -// +build wireinject - -package main - -import ( - "Crimson-Gatekeeper/internal/application" - "Crimson-Gatekeeper/internal/database" - "Crimson-Gatekeeper/internal/module/userpak" - - "github.com/google/wire" -) - -func getApplication() (*application.Application, error) { - wire.Build( - application.NewApplication, - database.GetDataBaseClient, - database.GetQuery, - database.GetPoolCfg, - userpak.NewUserCtl, - ) - return nil, nil -} diff --git a/srv/cmd/gatekeeper/wire_gen.go b/srv/cmd/gatekeeper/wire_gen.go deleted file mode 100644 index 63bfb79..0000000 --- a/srv/cmd/gatekeeper/wire_gen.go +++ /dev/null @@ -1,39 +0,0 @@ -// Code generated by Wire. DO NOT EDIT. - -//go:generate go run -mod=mod github.com/google/wire/cmd/wire -//go:build !wireinject -// +build !wireinject - -package main - -import ( - "Crimson-Gatekeeper/internal/application" - "Crimson-Gatekeeper/internal/database" - "Crimson-Gatekeeper/internal/module/userpak" -) - -// Injectors from wire.go: - -func getApplication() (*application.Application, error) { - db, err := database.GetDataBaseClient() - if err != nil { - return nil, err - } - query := database.GetQuery(db) - userCtl := userpak.NewUserCtl(query) - v := CtrlCollector(userCtl) - sqlDB, err := database.GetPoolCfg(db) - if err != nil { - return nil, err - } - applicationApplication := application.NewApplication(v, sqlDB) - return applicationApplication, nil -} - -// wire.go: - -func CtrlCollector( - c1 *userpak.UserCtl, -) []application.Ctrl { - return []application.Ctrl{c1} -} diff --git a/srv/tools/gorm_generate/main.go b/srv/devUtils/gorm_generate/main.go similarity index 100% rename from srv/tools/gorm_generate/main.go rename to srv/devUtils/gorm_generate/main.go diff --git a/srv/go.mod b/srv/go.mod index 4270dd1..076f240 100644 --- a/srv/go.mod +++ b/srv/go.mod @@ -44,14 +44,15 @@ require ( github.com/ugorji/go/codec v1.3.0 // indirect go.uber.org/mock v0.5.0 // indirect golang.org/x/arch v0.20.0 // indirect - golang.org/x/crypto v0.47.0 // indirect - golang.org/x/mod v0.32.0 // indirect - golang.org/x/net v0.49.0 // indirect - golang.org/x/sync v0.19.0 // indirect - golang.org/x/sys v0.40.0 // indirect - golang.org/x/text v0.33.0 // indirect - golang.org/x/tools v0.41.0 // indirect + golang.org/x/crypto v0.51.0 // indirect + golang.org/x/mod v0.35.0 // indirect + golang.org/x/net v0.53.0 // indirect + golang.org/x/sync v0.20.0 // indirect + golang.org/x/sys v0.44.0 // indirect + golang.org/x/text v0.37.0 // indirect + golang.org/x/tools v0.44.0 // indirect google.golang.org/protobuf v1.36.9 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect gorm.io/datatypes v1.2.7 // indirect gorm.io/driver/mysql v1.6.0 // indirect gorm.io/hints v1.1.2 // indirect diff --git a/srv/go.sum b/srv/go.sum index 93658c0..6974b24 100644 --- a/srv/go.sum +++ b/srv/go.sum @@ -98,19 +98,33 @@ golang.org/x/arch v0.20.0 h1:dx1zTU0MAE98U+TQ8BLl7XsJbgze2WnNKF/8tGp/Q6c= golang.org/x/arch v0.20.0/go.mod h1:bdwinDaKcfZUGpH09BB7ZmOfhalA8lQdzl62l8gGWsk= golang.org/x/crypto v0.47.0 h1:V6e3FRj+n4dbpw86FJ8Fv7XVOql7TEwpHapKoMJ/GO8= golang.org/x/crypto v0.47.0/go.mod h1:ff3Y9VzzKbwSSEzWqJsJVBnWmRwRSHt/6Op5n9bQc4A= +golang.org/x/crypto v0.51.0 h1:IBPXwPfKxY7cWQZ38ZCIRPI50YLeevDLlLnyC5wRGTI= +golang.org/x/crypto v0.51.0/go.mod h1:8AdwkbraGNABw2kOX6YFPs3WM22XqI4EXEd8g+x7Oc8= golang.org/x/mod v0.32.0 h1:9F4d3PHLljb6x//jOyokMv3eX+YDeepZSEo3mFJy93c= golang.org/x/mod v0.32.0/go.mod h1:SgipZ/3h2Ci89DlEtEXWUk/HteuRin+HHhN+WbNhguU= +golang.org/x/mod v0.35.0 h1:Ww1D637e6Pg+Zb2KrWfHQUnH2dQRLBQyAtpr/haaJeM= +golang.org/x/mod v0.35.0/go.mod h1:+GwiRhIInF8wPm+4AoT6L0FA1QWAad3OMdTRx4tFYlU= golang.org/x/net v0.49.0 h1:eeHFmOGUTtaaPSGNmjBKpbng9MulQsJURQUAfUwY++o= golang.org/x/net v0.49.0/go.mod h1:/ysNB2EvaqvesRkuLAyjI1ycPZlQHM3q01F02UY/MV8= +golang.org/x/net v0.53.0 h1:d+qAbo5L0orcWAr0a9JweQpjXF19LMXJE8Ey7hwOdUA= +golang.org/x/net v0.53.0/go.mod h1:JvMuJH7rrdiCfbeHoo3fCQU24Lf5JJwT9W3sJFulfgs= golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= +golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ= golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/sys v0.44.0 h1:ildZl3J4uzeKP07r2F++Op7E9B29JRUy+a27EibtBTQ= +golang.org/x/sys v0.44.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= golang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE= golang.org/x/text v0.33.0/go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8= +golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc= +golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38= golang.org/x/tools v0.41.0 h1:a9b8iMweWG+S0OBnlU36rzLp20z1Rp10w+IY2czHTQc= golang.org/x/tools v0.41.0/go.mod h1:XSY6eDqxVNiYgezAVqqCeihT4j1U2CCsqvH3WhQpnlg= +golang.org/x/tools v0.44.0 h1:UP4ajHPIcuMjT1GqzDWRlalUEoY+uzoZKnhOjbIPD2c= +golang.org/x/tools v0.44.0/go.mod h1:KA0AfVErSdxRZIsOVipbv3rQhVXTnlU6UhKxHd1seDI= google.golang.org/protobuf v1.36.9 h1:w2gp2mA27hUeUzj9Ex9FBjsBm40zfaDtEWow293U7Iw= google.golang.org/protobuf v1.36.9/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/srv/internal/application/appliceation.go b/srv/internal/application/appliceation.go index 016e184..e120230 100644 --- a/srv/internal/application/appliceation.go +++ b/srv/internal/application/appliceation.go @@ -35,8 +35,11 @@ func (app *Application) Stop() { } } -func NewApplication(ct Ctrl, p *sql.DB) *Application { +func NewApplication(cs []Ctrl, p *sql.DB) *Application { route := gin.Default() + for _, ctrl := range cs { + ctrl.RegisterRoutes(route) + } srv := &http.Server{ Addr: ":8443", Handler: route, diff --git a/srv/internal/parse/init.go b/srv/internal/parse/init.go new file mode 100644 index 0000000..c991423 --- /dev/null +++ b/srv/internal/parse/init.go @@ -0,0 +1,63 @@ +package parse + +import ( + "fmt" + "os" + "path" + "strings" + + "Crimson-Gatekeeper/internal/utils" + "gopkg.in/yaml.v3" +) + +type Cfg struct { + server struct { + port string + database struct { + host string + user string + dbname string + sslmode string + port string + passwd string + connectTimeout int + ssh bool + } + ssh struct { + host string + port string + user string + passwd string + keyPath string + } + } +} + +func (c *Cfg) getDbParam() { + +} + +func GetCfg() *Cfg { + pwd, err := os.Getwd() + utils.PaincEro(err, "获取当前工作目录失败") + dirs, err := os.ReadDir(pwd) + utils.PaincEro(err, "获取目录文件失败") + var data []byte + for _, item := range dirs { + isyaml := strings.HasSuffix(item.Name(), ".yaml") + if isyaml { + filePath := path.Join(pwd, item.Name()) + data, err = os.ReadFile(filePath) + utils.PaincEro(err, "读取配置文件失败") + break + } + } + if data == nil { + fmt.Println("没有找到配置文件,启动失败") + panic("没有找到配置文件,进程终止") + } + cfg := &Cfg{} + err = yaml.Unmarshal(data, cfg) + utils.PaincEro(err, "解析配置文件失败") + return cfg +} diff --git a/srv/internal/server/server.go b/srv/internal/server/server.go new file mode 100644 index 0000000..abb4e43 --- /dev/null +++ b/srv/internal/server/server.go @@ -0,0 +1 @@ +package server diff --git a/srv/internal/utils/index.go b/srv/internal/utils/index.go new file mode 100644 index 0000000..5207dfd --- /dev/null +++ b/srv/internal/utils/index.go @@ -0,0 +1,10 @@ +package utils + +import "fmt" + +func PaincEro(err error, msg string) { + if err != nil { + fmt.Println(msg) + panic(err) + } +} diff --git a/srv/server-env/config.yaml b/srv/server-env/config.yaml new file mode 100644 index 0000000..4ec6550 --- /dev/null +++ b/srv/server-env/config.yaml @@ -0,0 +1,20 @@ +server: + # 服务运行端口 + port: 8443 + # 数据库配置 + database: + host: localhost + user: gatekeeper + dbname: crimson + sslmode: disable + port: 5432 + passwd: crimson + connect-timeout: 20 + ssh-point: ycy + ssh-point: + - ycy: + host: www.ciallo.pub + user: root + port: 13915 + # passwd: kgmO6dGkC6hB +