config.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package configs
  2. import (
  3. _ "github.com/go-sql-driver/mysql"
  4. "github.com/spf13/cast"
  5. "github.com/spf13/viper"
  6. "os"
  7. )
  8. var (
  9. Server ServerConfiguration
  10. Manager ServerManager
  11. )
  12. type ServerConfiguration struct {
  13. Port string `mapstructure:"port"`
  14. Host string `mapstructure:"host"`
  15. }
  16. type ArkShopConfiguration struct {
  17. ArkShopConfigUrl string `json:"arkShopConfigUrl"` //arkshop 配置文件位置
  18. }
  19. type ServerManager struct {
  20. Username string `json:"username"`
  21. Password string `json:"password"`
  22. }
  23. func init() {
  24. LoadServerConfiguration()
  25. }
  26. func LoadServerConfiguration() {
  27. //获取项目的执行路径
  28. path, err := os.Getwd()
  29. if err != nil {
  30. panic(err)
  31. }
  32. config := viper.New()
  33. config.AddConfigPath(path + "/configs") //设置读取的文件路径
  34. config.SetConfigName("config") //设置读取的文件名
  35. config.SetConfigType("yaml") //设置文件的类型
  36. if err := config.ReadInConfig(); err != nil {
  37. panic(err)
  38. }
  39. portString := config.Get("server.port")
  40. if cast.ToString(portString) == "" {
  41. portString = "9777"
  42. }
  43. host := config.Get("server.host")
  44. Server = ServerConfiguration{
  45. Port: cast.ToString(portString),
  46. Host: cast.ToString(host),
  47. }
  48. //用户账号密码获取
  49. username := config.Get("server.manager.username")
  50. password := config.Get("server.manager.password")
  51. Manager = ServerManager{
  52. Username: cast.ToString(username),
  53. Password: cast.ToString(password),
  54. }
  55. }