diff options
| author | nsfisis <nsfisis@gmail.com> | 2025-11-08 16:44:28 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2025-11-08 16:44:28 +0900 |
| commit | 8082931484f147189186974d0dfd7a45b8e9563b (patch) | |
| tree | 1b297613259a6e9fde11c871c62768e6972e26fc /backend/config.go | |
| parent | 248c169c757fe9aeca0defc67cc8297e07a876d0 (diff) | |
| download | feedaka-8082931484f147189186974d0dfd7a45b8e9563b.tar.gz feedaka-8082931484f147189186974d0dfd7a45b8e9563b.tar.zst feedaka-8082931484f147189186974d0dfd7a45b8e9563b.zip | |
refactor(backend): Centralize environment variable loading in config.go
Diffstat (limited to 'backend/config.go')
| -rw-r--r-- | backend/config.go | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/backend/config.go b/backend/config.go new file mode 100644 index 0000000..c66100e --- /dev/null +++ b/backend/config.go @@ -0,0 +1,35 @@ +package main + +import ( + "errors" + "os" +) + +var ( + ErrNoSessionSecretEnvVar = errors.New("FEEDAKA_SESSION_SECRET environment variable is not set") +) + +type Config struct { + Port string + SessionSecret string + DevNonSecureCookie bool +} + +func LoadConfig() (*Config, error) { + port := os.Getenv("FEEDAKA_PORT") + sessionSecret := os.Getenv("FEEDAKA_SESSION_SECRET") + devNonSecureCookie := os.Getenv("FEEDAKA_DEV_NON_SECURE_COOKIE") + + if port == "" { + port = "8080" + } + if sessionSecret == "" { + return nil, ErrNoSessionSecretEnvVar + } + + return &Config{ + Port: port, + SessionSecret: sessionSecret, + DevNonSecureCookie: devNonSecureCookie == "1", + }, nil +} |
