Files
HomeOps-Hub/internal/shared/cfg/config.go
T
2026-04-04 14:58:45 +03:00

43 lines
948 B
Go

package cfg
import (
"fmt"
"log"
"github.com/ilyakaznacheev/cleanenv"
)
type Config struct {
DBHost string `env:"DB_HOST" env-required:"true"`
DBPort int `env:"DB_PORT" env-required:"true"`
DBPassword string `env:"DB_PASS" env-required:"true"`
DBUser string `env:"DB_USER" env-required:"true"`
DBName string `env:"DB_NAME" env-required:"true"`
LogLevel string `env:"LOG_LEVEL" env-default:"INFO"`
Mode string `env:"MODE" env-default:"DEV"`
}
func NewConfig() (*Config, error) {
var cfg Config
if err := cleanenv.ReadConfig(".env", &cfg); err != nil {
log.Printf("failed read config: %v", err)
if err = cleanenv.ReadEnv(&cfg); err != nil {
return nil, fmt.Errorf("env read failed: %v", err)
}
}
return &cfg, nil
}
func (c *Config) GetURLPostgres() string {
return fmt.Sprintf(
"postgres://%v:%v@%v:%v/%v?sslmode=disable",
c.DBUser,
c.DBPassword,
c.DBHost,
c.DBPort,
c.DBName)
}