config.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. package configs
  2. import (
  3. "fmt"
  4. _ "github.com/go-sql-driver/mysql"
  5. "github.com/spf13/cast"
  6. "github.com/spf13/viper"
  7. "os"
  8. "xorm.io/xorm"
  9. )
  10. var (
  11. Server ServerConfiguration
  12. Manager ServerManager
  13. ARKJsonFilePath string
  14. ARKBackupDir string
  15. ARKAPiZipPath string
  16. ArkApiInstallUrl string
  17. Engine *xorm.Engine
  18. //RedisDb *redis.Client
  19. )
  20. type ServerConfiguration struct {
  21. Port string `mapstructure:"port"`
  22. Host string `mapstructure:"host"`
  23. }
  24. type ArkShopConfiguration struct {
  25. ArkShopConfigUrl string `json:"arkShopConfigUrl"` //arkshop 配置文件位置
  26. }
  27. type ServerManager struct {
  28. Username string `json:"username"`
  29. Password string `json:"password"`
  30. }
  31. func init() {
  32. LoadServerConfiguration()
  33. ConfigInit()
  34. }
  35. func LoadServerConfiguration() {
  36. //获取项目的执行路径
  37. path, err := os.Getwd()
  38. if err != nil {
  39. panic(err)
  40. }
  41. config := viper.New()
  42. config.AddConfigPath(path + "/configs") //设置读取的文件路径
  43. config.SetConfigName("config") //设置读取的文件名
  44. config.SetConfigType("yaml") //设置文件的类型
  45. if err := config.ReadInConfig(); err != nil {
  46. panic(err)
  47. }
  48. portString := config.Get("server.port")
  49. if cast.ToString(portString) == "" {
  50. portString = "9777"
  51. }
  52. host := config.Get("server.host")
  53. Server = ServerConfiguration{
  54. Port: cast.ToString(portString),
  55. Host: cast.ToString(host),
  56. }
  57. //用户账号密码获取
  58. username := config.Get("server.manager.username")
  59. password := config.Get("server.manager.password")
  60. Manager = ServerManager{
  61. Username: cast.ToString(username),
  62. Password: cast.ToString(password),
  63. }
  64. ARKJsonFilePath = cast.ToString(config.Get("server.file.ark-file"))
  65. ARKBackupDir = cast.ToString(config.Get("server.file.ark-backup-dir"))
  66. ARKAPiZipPath = cast.ToString(config.Get("server.file.ark-api"))
  67. ArkApiInstallUrl = cast.ToString(config.Get("server.file.ark-api-install-url"))
  68. }
  69. func ConfigInit() {
  70. //获取项目的执行路径
  71. path, err := os.Getwd()
  72. if err != nil {
  73. panic(err)
  74. }
  75. config := viper.New()
  76. config.AddConfigPath(path + "/configs") //设置读取的文件路径
  77. config.SetConfigName("config") //设置读取的文件名
  78. config.SetConfigType("yaml") //设置文件的类型
  79. //尝试进行配置读取
  80. if err := config.ReadInConfig(); err != nil {
  81. panic(err)
  82. }
  83. fmt.Println(fmt.Sprintf("%s:%s@(%s:%s)/%s?charset=utf8", config.Get("mysql.user"), config.Get("mysql.password"), config.Get("mysql.host"), config.Get("mysql.port"), config.Get("mysql.database")))
  84. Engine, err = xorm.NewEngine("mysql", fmt.Sprintf("%s:%s@(%s:%s)/%s?charset=utf8", config.Get("mysql.user"), config.Get("mysql.password"), config.Get("mysql.host"), config.Get("mysql.port"), config.Get("mysql.database")))
  85. Engine.Ping() //连接测试
  86. //TODO 显示sql
  87. Engine.ShowSQL(true)
  88. Engine.Logger().ShowSQL(true)
  89. //RedisDb = redis.NewClient(&redis.Options{
  90. // Addr: fmt.Sprintf("%s:%s", config.Get("redis.host"), config.Get("redis.port")), // Redis地址
  91. // Password: "", // Redis密码,如果没有则为空字符串
  92. // DB: 0, // 使用默认DB
  93. //})
  94. ////开启debug模式
  95. //
  96. //Config = config
  97. fmt.Println("xorm 数据库orm框架初始化成功")
  98. //PayConfigInit()
  99. }