diff options
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 +} |
