You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.2 KiB
Go
51 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"github.com/urfave/cli/v2"
|
|
"go-micro.dev/v4"
|
|
"go-micro.dev/v4/logger"
|
|
"jochum.dev/jo-micro/auth2"
|
|
jwtClient "jochum.dev/jo-micro/auth2/plugins/client/jwt"
|
|
"jochum.dev/jo-micro/components"
|
|
"jochum.dev/jo-micro/geoip/cmd/microgeoipd/config"
|
|
"jochum.dev/jo-micro/geoip/cmd/microgeoipd/geoiphandler"
|
|
"jochum.dev/jo-micro/logruscomponent"
|
|
"jochum.dev/jo-micro/router"
|
|
)
|
|
|
|
func main() {
|
|
service := micro.NewService()
|
|
cReg := components.New(service, "geoip", logruscomponent.New(), auth2.ClientAuthComponent(), geoiphandler.New(), router.New())
|
|
|
|
auth2ClientReg := auth2.ClientAuthMustReg(cReg)
|
|
auth2ClientReg.Register(jwtClient.New())
|
|
|
|
service.Init(
|
|
micro.Name(config.Name),
|
|
micro.Version(config.Version),
|
|
micro.Flags(cReg.AppendFlags([]cli.Flag{})...),
|
|
micro.WrapHandler(auth2ClientReg.WrapHandler()),
|
|
micro.Action(func(c *cli.Context) error {
|
|
// Start/Init the components
|
|
if err := cReg.Init(c); err != nil {
|
|
logger.Fatal(err)
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}),
|
|
)
|
|
|
|
// Run the server
|
|
if err := service.Run(); err != nil {
|
|
logruscomponent.MustReg(cReg).Logger().Fatal(err)
|
|
return
|
|
}
|
|
|
|
// Stop the components
|
|
if err := cReg.Stop(); err != nil {
|
|
logger.Fatal(err)
|
|
return
|
|
}
|
|
}
|