From 7b7bd957695b2cf8375a6be6cdc51dc3328ea761 Mon Sep 17 00:00:00 2001 From: Sleroq Date: Wed, 4 Mar 2026 01:06:43 +0500 Subject: [PATCH] Allow startup without .env files --- internal/environment/environment.go | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/internal/environment/environment.go b/internal/environment/environment.go index 4deb84e3..41c26f2a 100644 --- a/internal/environment/environment.go +++ b/internal/environment/environment.go @@ -44,16 +44,11 @@ func LoadEnvironmentVariables() { func loadConfigs() error { if os.Getenv(appEnv) == "development" { - log.Println("Environment: Loading `" + envFileDevelopment + "`") - if err := godotenv.Load(envFileDevelopment); err != nil { - log.Printf("Environment: Could not load `%s`: %v", envFileDevelopment, err) - } - return nil + return loadOptionalEnvironmentFile(envFileDevelopment) } - log.Println("Environment: Loading `" + envFileProduction + "`") - if err := godotenv.Load(envFileProduction); err != nil { - log.Printf("Environment: Could not load `%s`: %v", envFileProduction, err) + if err := loadOptionalEnvironmentFile(envFileProduction); err != nil { + return err } if os.Getenv(FrontendDisabled) == "" { @@ -67,6 +62,22 @@ func loadConfigs() error { return nil } +func loadOptionalEnvironmentFile(fileName string) error { + if _, err := os.Stat(fileName); errors.Is(err, os.ErrNotExist) { + log.Printf("Environment: `%s` not found, continuing with system environment", fileName) + return nil + } else if err != nil { + return err + } + + log.Println("Environment: Loading `" + fileName + "`") + if err := godotenv.Load(fileName); err != nil { + return err + } + + return nil +} + func GetFrontendPath() string { frontendPath := os.Getenv(frontendPath) if frontendPath == "" {