123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- package env
- import (
- "flag"
- "git.dmitriygnatenko.ru/dima/homethings/internal/interfaces"
- "github.com/spf13/viper"
- )
- const defaultConfigPath = "../../.env"
- type env struct {
- AppPort string `mapstructure:"APP_PORT"`
- DBHost string `mapstructure:"DB_HOST"`
- DBPort string `mapstructure:"DB_PORT"`
- DBName string `mapstructure:"DB_NAME"`
- DBUser string `mapstructure:"DB_USER"`
- DBPassword string `mapstructure:"DB_PASSWORD"`
- DBMaxOpenConns int `mapstructure:"DB_MAX_OPEN_CONNS"`
- DBMaxIdleConns int `mapstructure:"DB_MAX_IDLE_CONNS"`
- DBMaxConnLifetime int `mapstructure:"DB_MAX_CONN_LIFETIME"`
- DBMaxIdleConnLifetime int `mapstructure:"DB_MAX_IDLE_CONN_LIFETIME"`
- CORSAllowOrigins string `mapstructure:"CORS_ALLOW_ORIGING"`
- CORSAllowMethods string `mapstructure:"CORS_ALLOW_METHODS"`
- JWTSecretKey string `mapstructure:"JWT_SECRET_KEY"`
- JWTLifeTime int `mapstructure:"JWT_LIFETIME"`
- BasicAuthUser string `mapstructure:"BASIC_AUTH_USER"`
- BasicAuthPassword string `mapstructure:"BASIC_AUTH_PASSWORD"`
- SMTPHost string `mapstructure:"SMTP_HOST"`
- SMTPPort string `mapstructure:"SMTP_PORT"`
- SMTPUser string `mapstructure:"SMTP_USER"`
- SMTPPassword string `mapstructure:"SMTP_PASSWORD"`
- ErrorsEmail string `mapstructure:"ERRORS_EMAIL"`
- }
- func Init() (interfaces.Env, error) {
- var configPath string
- flag.StringVar(&configPath, "config", "", "Path to .env config file")
- flag.Parse()
- if configPath == "" {
- configPath = defaultConfigPath
- }
- viper.SetConfigFile(configPath)
- viper.SetConfigType("env")
- viper.AutomaticEnv()
- if err := viper.ReadInConfig(); err != nil {
- return nil, err
- }
- res := &env{}
- err := viper.Unmarshal(&res)
- return res, err
- }
- func (e *env) GetAppPort() string {
- return e.AppPort
- }
- func (e *env) GetDBHost() string {
- return e.DBHost
- }
- func (e *env) GetDBPort() string {
- return e.DBPort
- }
- func (e *env) GetDBName() string {
- return e.DBName
- }
- func (e *env) GetDBUser() string {
- return e.DBUser
- }
- func (e *env) GetDBPassword() string {
- return e.DBPassword
- }
- func (e *env) GetCORSAllowOrigins() string {
- return e.CORSAllowOrigins
- }
- func (e *env) GetCORSAllowMethods() string {
- return e.CORSAllowMethods
- }
- func (e *env) GetDBMaxOpenConns() int {
- return e.DBMaxOpenConns
- }
- func (e *env) GetDBMaxIdleConns() int {
- return e.DBMaxIdleConns
- }
- func (e *env) GetDBMaxConnLifetime() int {
- return e.DBMaxConnLifetime
- }
- func (e *env) GetDBMaxIdleConnLifetime() int {
- return e.DBMaxIdleConnLifetime
- }
- func (e *env) GetSMTPHost() string {
- return e.SMTPHost
- }
- func (e *env) GetSMTPPort() string {
- return e.SMTPPort
- }
- func (e *env) GetSMTPUser() string {
- return e.SMTPUser
- }
- func (e *env) GetSMTPPassword() string {
- return e.SMTPPassword
- }
- func (e *env) GetJWTSecretKey() string {
- return e.JWTSecretKey
- }
- func (e *env) GetJWTLifetime() int {
- return e.JWTLifeTime
- }
- func (e *env) GetErrorsEmail() string {
- return e.ErrorsEmail
- }
- func (e *env) GetBasicAuthUser() string {
- return e.BasicAuthUser
- }
- func (e *env) GetBasicAuthPassword() string {
- return e.BasicAuthPassword
- }
|