config.go 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package configs
  2. import (
  3. "fmt"
  4. _ "github.com/glebarez/sqlite"
  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. Engine *xorm.Engine
  14. //RedisDb *redis.Client
  15. )
  16. type ServerConfiguration struct {
  17. Port string `mapstructure:"port"`
  18. Host string `mapstructure:"host"`
  19. }
  20. type ServerManager struct {
  21. Username string `json:"username"`
  22. Password string `json:"password"`
  23. }
  24. func init() {
  25. LoadServerConfiguration()
  26. ConfigInit()
  27. }
  28. func LoadServerConfiguration() {
  29. //获取项目的执行路径
  30. path, err := os.Getwd()
  31. if err != nil {
  32. panic(err)
  33. }
  34. config := viper.New()
  35. config.AddConfigPath(path + "/configs") //设置读取的文件路径
  36. config.SetConfigName("config") //设置读取的文件名
  37. config.SetConfigType("yaml") //设置文件的类型
  38. if err := config.ReadInConfig(); err != nil {
  39. panic(err)
  40. }
  41. portString := config.Get("server.port")
  42. if cast.ToString(portString) == "" {
  43. portString = "9777"
  44. }
  45. host := config.Get("server.host")
  46. Server = ServerConfiguration{
  47. Port: cast.ToString(portString),
  48. Host: cast.ToString(host),
  49. }
  50. //用户账号密码获取
  51. username := config.Get("server.manager.username")
  52. password := config.Get("server.manager.password")
  53. Manager = ServerManager{
  54. Username: cast.ToString(username),
  55. Password: cast.ToString(password),
  56. }
  57. }
  58. func ConfigInit() {
  59. //获取项目的执行路径
  60. path, err := os.Getwd()
  61. if err != nil {
  62. panic(err)
  63. }
  64. config := viper.New()
  65. config.AddConfigPath(path + "/configs") //设置读取的文件路径
  66. config.SetConfigName("config") //设置读取的文件名
  67. config.SetConfigType("yaml") //设置文件的类型
  68. //尝试进行配置读取
  69. if err := config.ReadInConfig(); err != nil {
  70. panic(err)
  71. }
  72. Engine, err = xorm.NewEngine("sqlite", "./file/ark-tools.db")
  73. Engine.Ping() //连接测试
  74. //TODO 显示sql
  75. Engine.ShowSQL(true)
  76. Engine.Logger().ShowSQL(true)
  77. fmt.Println("xorm 数据库orm框架初始化成功")
  78. }