config.go 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package config
  2. import (
  3. "git.qianqiusoft.com/qianqiusoft/light-apiengine/logs"
  4. "os"
  5. )
  6. type ApiConfig struct {
  7. RunMode string
  8. HttpPort int64
  9. LogMode string
  10. AppName string
  11. DataSource string
  12. SyncDb bool
  13. AutoRefresh bool
  14. EnableLdapServer bool
  15. LdapPort int64
  16. }
  17. var AppConfig ApiConfig
  18. var _config *Config = nil
  19. func init() {
  20. ParseConfig()
  21. logs.Debug(AppConfig)
  22. }
  23. func ParseConfig() {
  24. var err error
  25. configPath := "conf/app.conf"
  26. workEnv := os.Getenv("WORKENV")
  27. if workEnv != "" {
  28. configPath = "conf/app-" + workEnv + ".conf"
  29. }
  30. _config, err = LoadConfiguration(configPath)
  31. if _config == nil {
  32. panic("cant find config '" + configPath + "'")
  33. }
  34. if err != nil {
  35. logs.Error(err.Error())
  36. AppConfig.AppName = ""
  37. AppConfig.HttpPort = 8080
  38. AppConfig.LogMode = "debug"
  39. AppConfig.RunMode = "debug"
  40. AppConfig.DataSource = ""
  41. AppConfig.SyncDb = true
  42. AppConfig.AutoRefresh = false
  43. } else {
  44. AppConfig.AppName = _config.String("app_name", "")
  45. AppConfig.HttpPort = _config.Integer("http_port", 8080)
  46. AppConfig.LogMode = _config.String("log_mode", "debug")
  47. AppConfig.RunMode = _config.String("run_mode", "debug")
  48. AppConfig.DataSource = _config.String("data_source", "")
  49. AppConfig.SyncDb = _config.Boolean("sync_db", true)
  50. AppConfig.AutoRefresh = _config.Boolean("auto_refresh", false)
  51. AppConfig.EnableLdapServer = _config.Boolean("enable_ldap_server", true)
  52. AppConfig.LdapPort = _config.Integer("ldap_port", 389)
  53. }
  54. }
  55. func (c *ApiConfig) GetKey(key string) string {
  56. if _config == nil {
  57. ParseConfig()
  58. }
  59. return _config.String(key, "")
  60. }
  61. func (c *ApiConfig) GetInt(key string) int64 {
  62. if _config == nil {
  63. ParseConfig()
  64. }
  65. return _config.Integer(key, 0)
  66. }
  67. func (c *ApiConfig) GetBool(key string, def bool) bool {
  68. if _config == nil {
  69. ParseConfig()
  70. }
  71. return _config.Boolean(key, def)
  72. }