This commit is contained in:
Jeffrey Duroyon
2019-04-04 14:29:48 +02:00
committed by Jeffrey Duroyon
parent 0df6d64c35
commit 33db360b03
38 changed files with 1476 additions and 1 deletions

56
cmd/serve.go Normal file
View File

@@ -0,0 +1,56 @@
package cmd
import (
"github.com/kratisto/mam-contract/internal/ginserver"
"github.com/kratisto/mam-contract/internal/health"
"github.com/kratisto/mam-contract/internal/utils"
"github.com/sirupsen/logrus"
"github.com/spf13/cobra"
"github.com/spf13/viper"
)
// serveCmd represents the serve command
var serveCmd = &cobra.Command{
Use: "serve",
Short: "Serve endpoints",
PreRun: initServeBindingsFlags,
Run: func(cmd *cobra.Command, args []string) {
initConfig()
utils.InitLogger(config.LogLevel, config.LogFormat)
logrus.
WithField(parameterLogLevel, config.LogLevel).
WithField(parameterLogFormat, config.LogFormat).
WithField(parameterPort, config.Port).
WithField(parameterPostgresHost, config.PostgresHost).
Warn("Configuration")
injector := &utils.Injector{}
ginserver.Setup(injector, config)
health.Setup(injector)
ginserver.Start(injector)
},
}
func init() {
serveCmd.Flags().String(parameterLogLevel, defaultLogLevel, "Use this flag to set the logging level")
serveCmd.Flags().String(parameterLogFormat, defaultLogFormat, "Use this flag to set the logging format")
serveCmd.Flags().Bool(parameterMock, defaultMock, "Use this flag to mock external services")
serveCmd.Flags().Int(parameterPort, defaultPort, "Use this flag to set the listening port of the api")
serveCmd.Flags().String(parameterPostgresDBName, defaultPostgresDBName, "Use this flag to set database name")
serveCmd.Flags().String(parameterPostgresDBSchema, defaultPostgresDBSchema, "Use this flag to set database schema name")
serveCmd.Flags().String(parameterPostgresHost, defaultPostgresHost, "Use this flag to set database host")
serveCmd.Flags().String(parameterPostgresUser, defaultPostgresUser, "Use this flag to set database user name")
serveCmd.Flags().String(parameterPostgresPwd, defaultPostgresPwd, "Use this flag to set database user password")
}
func initServeBindingsFlags(cmd *cobra.Command, args []string) {
viper.BindPFlag(parameterLogLevel, cmd.Flags().Lookup(parameterLogLevel))
viper.BindPFlag(parameterLogFormat, cmd.Flags().Lookup(parameterLogFormat))
viper.BindPFlag(parameterMock, cmd.Flags().Lookup(parameterMock))
viper.BindPFlag(parameterPort, cmd.Flags().Lookup(parameterPort))
viper.BindPFlag(parameterPostgresDBName, cmd.Flags().Lookup(parameterPostgresDBName))
viper.BindPFlag(parameterPostgresDBSchema, cmd.Flags().Lookup(parameterPostgresDBSchema))
viper.BindPFlag(parameterPostgresHost, cmd.Flags().Lookup(parameterPostgresHost))
viper.BindPFlag(parameterPostgresUser, cmd.Flags().Lookup(parameterPostgresUser))
viper.BindPFlag(parameterPostgresPwd, cmd.Flags().Lookup(parameterPostgresPwd))
}