37 lines
517 B
Go
37 lines
517 B
Go
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
|
|
}
|