Files
go-migrate/internal/app/config/main.go

50 lines
848 B
Go

package config
import (
"os"
"strings"
"github.com/joho/godotenv"
log "github.com/sirupsen/logrus"
)
type appConfig struct {
SourceDbUrl string
TargetDbUrl string
LogLevel string
}
func loadEnv() {
err := godotenv.Load()
if err != nil {
log.Warn("Warning: could not load .env file")
}
}
func getAppConfig() appConfig {
loadEnv()
sourceDbUrl := os.Getenv("SOURCE_DB_URL")
if sourceDbUrl == "" {
log.Fatal("SOURCE_DB_URL environment variable not set")
}
targetDbUrl := os.Getenv("TARGET_DB_URL")
if targetDbUrl == "" {
log.Fatal("TARGET_DB_URL environment variable not set")
}
logLevel := strings.ToUpper(os.Getenv("LOG_LEVEL"))
if logLevel == "" {
logLevel = "INFO"
}
return appConfig{
SourceDbUrl: sourceDbUrl,
TargetDbUrl: targetDbUrl,
LogLevel: logLevel,
}
}
var App appConfig = getAppConfig()