12345678910111213141516171819202122232425262728293031323334353637383940 |
- package config
- import (
- "fmt"
- "github.com/spf13/viper"
- "os"
- "time"
- )
- type Config struct {
- Redis struct {
- Addr string `mapstructure:"addr"`
- Password string `mapstructure:"password"`
- DB int `mapstructure:"db"`
- ReadTimeout time.Duration `mapstructure:"read_timeout"`
- WriteTimeout time.Duration `mapstructure:"write_timeout"`
- } `mapstructure:"redis"`
- RabbitMQ struct {
- URL string `mapstructure:"url"`
- } `mapstructure:"rabbitmq"`
- }
- func NewConfig(p string) *viper.Viper {
- envConf := os.Getenv("APP_CONF")
- if envConf == "" {
- envConf = p
- }
- fmt.Println("load conf file:", envConf)
- return getConfig(envConf)
- }
- func getConfig(path string) *viper.Viper {
- conf := viper.New()
- conf.SetConfigFile(path)
- err := conf.ReadInConfig()
- if err != nil {
- panic(err)
- }
- return conf
- }
|