setting.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package setting
  2. import (
  3. "fmt"
  4. "os"
  5. "path/filepath"
  6. "github.com/spf13/viper"
  7. )
  8. type DataBaseInfo struct {
  9. Db string `toml:"Db" `
  10. DbHost string `toml:"DbHost" `
  11. DbPort string `toml:"DbPort" `
  12. DbName string `toml:"DbName" `
  13. DbUser string `toml:"DbUser" `
  14. DbPassWord string `toml:"DbPassWord" `
  15. }
  16. type SettingInfo struct {
  17. Limit string `toml:"Limit" `
  18. ColLimit string `toml:"ColLimit" `
  19. }
  20. var SqlMaps map[string]any
  21. var DbInfo DataBaseInfo
  22. var SInfo SettingInfo
  23. func init() {
  24. v := viper.New()
  25. //v.SetConfigFile("/home/gtong/GO/xgx/XGX/config.toml")
  26. executablePath, err := os.Executable()
  27. if err != nil {
  28. // 处理错误
  29. }
  30. configFilePath := filepath.Join(filepath.Dir(executablePath), "config.toml")
  31. //fmt.Println("configFilePath", configFilePath)
  32. v.AddConfigPath(".")
  33. v.SetConfigFile(configFilePath)
  34. v.SetConfigFile("./config.toml")
  35. if err := v.ReadInConfig(); err != nil {
  36. if _, ok := err.(viper.ConfigFileNotFoundError); ok {
  37. fmt.Printf("配置文件不存在:%v\n", err)
  38. } else {
  39. fmt.Printf("配置文件存在,解析失败:%v\n", err)
  40. }
  41. }
  42. //获取数据库连接信息
  43. database := v.Sub("database")
  44. err = database.Unmarshal(&DbInfo)
  45. if err != nil {
  46. fmt.Println(err)
  47. return
  48. }
  49. //获取基本设置
  50. setting := v.Sub("setting")
  51. err = setting.Unmarshal(&SInfo)
  52. if err != nil {
  53. fmt.Println(err)
  54. return
  55. }
  56. //获取sql
  57. SqlMaps = v.GetStringMap("sql")
  58. }
  59. func PrintSqlMap() {
  60. for k := range SqlMaps {
  61. fmt.Printf("%s ----> %s\n", k, SqlMaps[k])
  62. }
  63. }