package config import ( "github.com/joho/godotenv" "log" "os" ) type Config struct { PostgresDsn string } var instance *Config = nil func loadDotEnv(filename string) { err := godotenv.Load(filename) if err != nil { log.Fatal("Environment variables isn't loaded") } // Load env and form instance instance = &Config{ PostgresDsn: func() string { val, _ := os.LookupEnv("POSTGRES_DSN") return val }(), } } func New() *Config { if instance == nil { loadDotEnv("env") } return instance }