package main //TODO move flag declarations here const ( ViperAPIPort string = "api.port" FlagAPIPort string = "api-port" DefaultAPIPort int = 1312 DescriptionAPIPort string = "API server port" ViperAPIKey string = "api.key" FlagAPIKey string = "api-key" DefaultAPIKey string = "bottin" DescriptionAPIKey string = "API server key. Leave empty for no key auth (not recommended)" ViperDBDatabase string = "db.database" FlagDBDatabase string = "db-database" DefaultDBDatabase string = "bottin" DescriptionDBDatabase string = "Postgres database" ViperDBSSLMode string = "db.sslmode" FlagDBSSLMode string = "db-sslmode" DefaultDBSSLMode string = "prefer" DescriptionDBSSLMode string = "Postgres sslmode" ViperDBHost string = "db.host" FlagDBHost string = "db-host" DefaultDBHost string = "db" DescriptionDBHost string = "Postgres host" ViperDBPassword string = "db.password" FlagDBPassword string = "db-password" DefaultDBPassword string = "bottin" DescriptionDBPassword string = "Postgres password" ViperDBPort string = "db.port" FlagDBPort string = "db-port" DefaultDBPort int = 5432 DescriptionDBPort string = "Postgres port" ViperDBUser string = "db.user" FlagDBUser string = "db-user" DefaultDBUser string = "bottin" DescriptionDBUser string = "Postgres user" ViperWebUser string = "web.user" FlagWebUser string = "web-user" DefaultWebUser string = "bottin" DescriptionWebUser string = "Web client basic auth user" ViperWebPassword string = "web.password" FlagWebPassword string = "web-password" DefaultWebPassword string = "bottin" DescriptionWebPassword string = "Web client basic auth password" ViperWebPort string = "web.port" FlagWebPort string = "web-port" DefaultWebPort int = 2312 DescriptionWebPort string = "Web client port" ViperWebAPIHost string = "api.host" FlagWebAPIHost string = "api-host" DefaultWebAPIHost string = "api" DescriptionWebAPIHost string = "Target API server host" ViperWebAPIKey string = "api.key" FlagWebAPIKey string = "api-key" DefaultWebAPIKey string = "bottin" DescriptionWebAPIKey string = "Target API server key" ViperWebAPIPort string = "api.port" FlagWebAPIPort string = "api-port" DefaultWebAPIPort int = 1312 DescriptionWebAPIPort string = "Target API server port" ViperWebAPIProtocol string = "api.protocol" FlagWebAPIProtocol string = "api-protocol" DefaultWebAPIProtocol string = "http" DescriptionWebAPIProtocol string = "Target API server protocol (http/https)" ) type Config struct { API struct { Port int `yaml:"port"` Key string `yaml:"key"` } `yaml:"api"` DB struct { Database string `yaml:"database"` Host string `yaml:"host"` SSLMode string `yaml:"sslmode"` Password string `yaml:"password"` Port int `yaml:"port"` User string `yaml:"user"` } `yaml:"db"` Web struct { User string `yaml:"user"` Password string `yaml:"password"` Port int `yaml:"port"` API struct { Host string `yaml:"host"` Key string `yaml:"key"` Port int `yaml:"port"` Protocol string `yaml:"protocol"` } `yaml:"api"` } `yaml:"web"` } // DefaultConfig returns a Config filled with the default values from the // `Default*` constants defined in this file. func DefaultConfig() (cfg Config) { cfg.API.Port = DefaultAPIPort cfg.API.Key = DefaultAPIKey cfg.DB.Database = DefaultDBDatabase cfg.DB.Host = DefaultDBHost cfg.DB.SSLMode = DefaultDBSSLMode cfg.DB.Password = DefaultDBPassword cfg.DB.Port = DefaultDBPort cfg.DB.User = DefaultDBUser cfg.Web.User = DefaultWebUser cfg.Web.Password = DefaultWebPassword cfg.Web.Port = DefaultWebPort cfg.Web.API.Host = DefaultWebAPIHost cfg.Web.API.Key = DefaultWebAPIKey cfg.Web.API.Port = DefaultWebAPIPort cfg.Web.API.Protocol = DefaultWebAPIProtocol return }