-
Christophe de Vienne authoredChristophe de Vienne authored
cmd.gotmpl 3.12 KiB
// Code generated by go-swagger/go-orusapi; DO NOT EDIT.
package cmd
import (
"github.com/orus-io/go-flags"
"orus.io/orus-io/go-orusapi"
"orus.io/orus-io/go-orusapi/database"
)
var (
Version string
)
type ConfigFile struct {
ConfigFile string `long:"config" short:"c" env:"CONFIG" no-ini:"t" description:"A configuration file"`
}
type Info struct {
Environment string `long:"environment" env:"ENVIRONMENT" ini-name:"environment" default:"default" description:"A environment name, used in sentry and prometheus"`
}
var (
Logger = orusapi.DefaultLogger(os.Stdout)
LoggingOptions = orusapi.MustLoggingOptions(orusapi.NewLoggingOptions(&Logger, os.Stdout))
DatabaseOptions = &database.Options{}
ConfigFileOption = &ConfigFile{}
InfoOptions = &Info{}
SentryOptions = orusapi.NewSentryOptions(LoggingOptions)
parser = flags.NewNamedParser("{{ dasherize (pascalize .Name) }}", flags.HelpFlag|flags.PassDoubleDash)
bootstrapParser = flags.NewNamedParser("{{ dasherize (pascalize .Name) }}", flags.IgnoreUnknown)
)
func Run() int {
if _, err := bootstrapParser.Parse(); err != nil {
Logger.Err(err).Msg("")
return 1
}
if ConfigFileOption.ConfigFile != "" {
Logger.Debug().Str("configfile", ConfigFileOption.ConfigFile).Msg("parsing configuration file")
iniParser := flags.NewIniParser(parser)
if err := iniParser.ParseFile(ConfigFileOption.ConfigFile); err != nil {
Logger.Err(err).Msg("")
return 1
}
}
if _, err := parser.Parse(); err != nil {
code := 1
if fe, ok := err.(*flags.Error); ok {
if fe.Type == flags.ErrHelp {
code = 0
// this error actually contains a help message for the user
// so we print it on the console
fmt.Println(err)
} else {
Logger.Error().Msg(err.Error())
}
} else {
Logger.Err(err).Msg("")
}
return code
}
return 0
}
func init() {
parser.NamespaceDelimiter = "-"
parser.EnvNamespaceDelimiter = "_"
parser.EnvNamespace = "CARNET"
if _, err := parser.AddGroup("Configuration", "Configuration file", ConfigFileOption); err != nil {
panic(err)
}
g, err := parser.AddGroup("Info", "Info options", InfoOptions)
if err != nil {
panic(err)
}
g, err = parser.AddGroup("Logging", "Logging options", LoggingOptions)
if err != nil {
panic(err)
}
g.Namespace="log"
g.EnvNamespace="LOG"
g, err = parser.AddGroup("Database", "Database options", DatabaseOptions)
if err != nil {
panic(err)
}
g.Namespace="db"
g.EnvNamespace="DB"
g, err = parser.AddGroup("Sentry", "Sentry options", SentryOptions)
if err != nil {
panic(err)
}
g.Namespace="sentry"
g.EnvNamespace="SENTRY"
if _, err := parser.AddCommand("generate-config", "Generate a configuration file", "", orusapi.NewGenerateConfigCmd(parser)); err != nil {
panic(err)
}
bootstrapParser.NamespaceDelimiter = "-"
bootstrapParser.EnvNamespaceDelimiter = "_"
bootstrapParser.EnvNamespace = "CARNET"
if _, err := bootstrapParser.AddGroup("Configuration", "Configuration file", ConfigFileOption); err != nil {
panic(err)
}
g, err = bootstrapParser.AddGroup("Logging", "Logging options", LoggingOptions)
if err != nil {
panic(err)
}
g.Namespace="log"
g.EnvNamespace="LOG"
}