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.
geoip/cmd/microgeoipd/main.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
}
}