veza/veza-backend-api/internal/config/env_loader.go
2025-12-03 20:29:37 +01:00

27 lines
778 B
Go

package config
import (
"fmt"
"os"
"github.com/joho/godotenv"
)
// LoadEnvFiles charge les fichiers .env selon l'environnement (T0032)
// Charge dans l'ordre: .env.{env}, .env
// Les variables d'environnement système ont toujours priorité (godotenv ne surcharge pas les variables existantes)
func LoadEnvFiles(env string) error {
// Charger .env.{env} si existe (ex: .env.development, .env.production, .env.test)
envFile := ".env." + env
if _, err := os.Stat(envFile); err == nil {
if err := godotenv.Load(envFile); err != nil {
return fmt.Errorf("failed to load %s: %w", envFile, err)
}
}
// Charger .env en fallback (ignore si n'existe pas)
// Note: godotenv.Load() ne retourne pas d'erreur si le fichier n'existe pas
_ = godotenv.Load()
return nil
}