diff config/config.go @ 220:11d1a488b08f

Depend command line parsing on Viper/Cobra. Configuration should be persistent now.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Tue, 24 Jul 2018 17:45:17 +0200
parents 3457a60fb12d
children 696c19abe869
line wrap: on
line diff
--- a/config/config.go	Tue Jul 24 16:19:05 2018 +0200
+++ b/config/config.go	Tue Jul 24 17:45:17 2018 +0200
@@ -1,48 +1,17 @@
 package config
 
-import (
-	"log"
-	"os"
-	"strconv"
-)
-
-var Config = NewConfiguration()
+var Config Configuration
 
 type Configuration struct {
+	File      string
 	DBHost    string
 	DBPort    uint
 	DBName    string
 	DBSSLMode string
 
 	SessionStore string
-}
 
-func NewConfiguration() *Configuration {
-	// TODO: Load from file.
-	return &Configuration{
-		DBHost:       envString("GEMMA_DB_HOST", "localhost"),
-		DBPort:       envUint("GEMMA_DB_PORT", 5432),
-		DBName:       envString("GEMMA_DB_NAME", "gemma"),
-		DBSSLMode:    envString("GEMMA_DB_SSL_MODE", "require"),
-		SessionStore: envString("GEMMA_SESSION_STORE", ""),
-	}
+	Web     string
+	WebHost string
+	WebPort uint
 }
-
-func envString(key, def string) string {
-	if v, ok := os.LookupEnv(key); ok {
-		return v
-	}
-	return def
-}
-
-func envUint(key string, def uint) uint {
-	if v, ok := os.LookupEnv(key); ok {
-		x, err := strconv.ParseUint(v, 10, 64)
-		if err != nil {
-			log.Printf("warn: invalid uint env %s: %v\n", key, err)
-			return def
-		}
-		return uint(x)
-	}
-	return def
-}