27 lines
778 B
Go
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
|
|
}
|