configutils.go 946 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package configutils
  2. import (
  3. "encoding/json"
  4. "log"
  5. "os"
  6. )
  7. var (
  8. // Conf stores configuration for global access
  9. Conf *Configuration
  10. )
  11. // Configuration defines the configuration structure
  12. type Configuration struct {
  13. DBHost string
  14. DBUser string
  15. DBPass string
  16. DBName string
  17. CryptoKey string
  18. ClientID string
  19. ClientSecret string
  20. CryptoStrength int
  21. AuthURL string
  22. // TODO dynamic fields, map string string
  23. }
  24. // ReadConfig reads the config file and returns a Configuration object
  25. func ReadConfig(filename string) Configuration {
  26. file, err := os.Open(filename)
  27. if err != nil {
  28. log.Println("Failed reading configuration:", err)
  29. }
  30. decoder := json.NewDecoder(file)
  31. configuration := Configuration{}
  32. err = decoder.Decode(&configuration)
  33. if err != nil {
  34. log.Println("Failed parsing configuration:", err)
  35. }
  36. //log.Printf("%#v", configuration) // DEBUG
  37. return configuration
  38. }