config.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package config
  2. import (
  3. "io/ioutil"
  4. yaml "gopkg.in/yaml.v2"
  5. )
  6. const (
  7. LOG_LEVEL_OFF = iota
  8. LOG_LEVEL_INFO
  9. LOG_LEVEL_DEBUG
  10. )
  11. type ConfigT struct {
  12. // Domain
  13. Domain string
  14. // Logging
  15. LogLevel int `yaml:"log_level"`
  16. // Admin credentials
  17. Admin struct {
  18. Username string
  19. Password string
  20. }
  21. // Database
  22. Orm struct {
  23. Connection string
  24. Options string
  25. Reset bool
  26. AutoMigrate bool
  27. Regenerate bool
  28. }
  29. // LDAP
  30. Ldap struct {
  31. Host string
  32. Port string
  33. BindPassword string `yaml:"bind_password"`
  34. BindUser string `yaml:"bind_user"`
  35. RootDN string `yaml:"root_dn"`
  36. OuPeople string `yaml:"ou_people"`
  37. OuTeacher string `yaml:"ou_teacher"`
  38. OuGroup string `yaml:"ou_group"`
  39. OuTeachersGroup string `yaml:"ou_teachers_group"`
  40. }
  41. // LimeSurvey Remote Control URL
  42. Limesurvey struct {
  43. Url string
  44. Username string
  45. Password string
  46. }
  47. // Cloud
  48. Cloud struct {
  49. Url string
  50. Username string
  51. Password string
  52. }
  53. }
  54. var Config *ConfigT
  55. func init() {
  56. Config = new(ConfigT)
  57. }
  58. // Load loads the config file placed at the given path.
  59. func Load(path string, config *ConfigT) error {
  60. cf, err := ioutil.ReadFile(path)
  61. if err != nil {
  62. return err
  63. }
  64. if err := yaml.Unmarshal(cf, config); err != nil {
  65. return err
  66. }
  67. return nil
  68. }