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

41 lines
969 B
Go

package config
import (
"github.com/caarlos0/env/v11"
"github.com/joho/godotenv"
log "github.com/sirupsen/logrus"
)
type AzureConfig struct {
AccountName string `env:"AZ_ACCOUNT_NAME"`
Container string `env:"AZ_CONTAINER"`
AccountKey string `env:"AZ_ACCOUNT_KEY"`
UseHTTPS bool `env:"AZ_USE_HTTPS" envDefault:"true"`
ServiceURL string `env:"AZ_SERVICE_URL"`
Prefix string `env:"AZ_PREFIX"`
Enabled bool `env:"AZ_STORAGE_ENABLED"`
}
type appConfig struct {
SourceDbUrl string `env:"SOURCE_DB_URL,required"`
TargetDbUrl string `env:"TARGET_DB_URL,required"`
LogLevel string `env:"LOG_LEVEL" envDefault:"INFO"`
Azure AzureConfig
}
func getAppConfig() appConfig {
if err := godotenv.Load(); err != nil {
log.Warn("Could not load .env file")
}
cfg := appConfig{}
if err := env.Parse(&cfg); err != nil {
log.Fatalf("Error al cargar variables de entorno: %v", err)
}
return cfg
}
var App appConfig = getAppConfig()