aboutsummaryrefslogtreecommitdiffhomepage
path: root/backend/config/config.go
diff options
context:
space:
mode:
Diffstat (limited to 'backend/config/config.go')
-rw-r--r--backend/config/config.go54
1 files changed, 54 insertions, 0 deletions
diff --git a/backend/config/config.go b/backend/config/config.go
new file mode 100644
index 0000000..8211bfd
--- /dev/null
+++ b/backend/config/config.go
@@ -0,0 +1,54 @@
+package config
+
+import (
+ "fmt"
+ "os"
+)
+
+type Config struct {
+ DBHost string
+ DBPort string
+ DBUser string
+ DBPassword string
+ DBName string
+ BasePath string
+ IsLocal bool
+}
+
+func NewConfigFromEnv() (*Config, error) {
+ dbHost, exists := os.LookupEnv("ALBATROSS_DB_HOST")
+ if !exists {
+ return nil, fmt.Errorf("ALBATROSS_DB_HOST not set")
+ }
+ dbPort, exists := os.LookupEnv("ALBATROSS_DB_PORT")
+ if !exists {
+ return nil, fmt.Errorf("ALBATROSS_DB_PORT not set")
+ }
+ dbUser, exists := os.LookupEnv("ALBATROSS_DB_USER")
+ if !exists {
+ return nil, fmt.Errorf("ALBATROSS_DB_USER not set")
+ }
+ dbPassword, exists := os.LookupEnv("ALBATROSS_DB_PASSWORD")
+ if !exists {
+ return nil, fmt.Errorf("ALBATROSS_DB_PASSWORD not set")
+ }
+ dbName, exists := os.LookupEnv("ALBATROSS_DB_NAME")
+ if !exists {
+ return nil, fmt.Errorf("ALBATROSS_DB_NAME not set")
+ }
+ basePath, exists := os.LookupEnv("ALBATROSS_BASE_PATH")
+ if !exists {
+ return nil, fmt.Errorf("ALBATROSS_BASE_PATH not set")
+ }
+ isLocalStr, exists := os.LookupEnv("ALBATROSS_IS_LOCAL")
+ isLocal := exists && isLocalStr == "1"
+ return &Config{
+ DBHost: dbHost,
+ DBPort: dbPort,
+ DBUser: dbUser,
+ DBPassword: dbPassword,
+ DBName: dbName,
+ BasePath: basePath,
+ IsLocal: isLocal,
+ }, nil
+}