50 lines
742 B
Go
50 lines
742 B
Go
package config
|
|
|
|
import (
|
|
"os"
|
|
|
|
"github.com/joho/godotenv"
|
|
log "github.com/sirupsen/logrus"
|
|
)
|
|
|
|
type dbConfig struct {
|
|
Url string
|
|
}
|
|
|
|
type appConfig struct {
|
|
FromDb dbConfig
|
|
ToDb dbConfig
|
|
}
|
|
|
|
func loadEnv() {
|
|
err := godotenv.Load()
|
|
if err != nil {
|
|
log.Warn("Warning: could not load .env file")
|
|
}
|
|
}
|
|
|
|
func getAppConfig() appConfig {
|
|
loadEnv()
|
|
|
|
fromDbUrl := os.Getenv("PG_FROM_DB_URL")
|
|
if fromDbUrl == "" {
|
|
log.Fatal("PG_FROM_DB_URL environment variable not set")
|
|
}
|
|
|
|
toDbUrl := os.Getenv("PG_TO_DB_URL")
|
|
if toDbUrl == "" {
|
|
log.Fatal("PG_TO_DB_URL environment variable not set")
|
|
}
|
|
|
|
return appConfig{
|
|
FromDb: dbConfig{
|
|
Url: fromDbUrl,
|
|
},
|
|
ToDb: dbConfig{
|
|
Url: toDbUrl,
|
|
},
|
|
}
|
|
}
|
|
|
|
var App appConfig = getAppConfig()
|