1 Star 0 Fork 2

何吕 / volantmq

forked from JUMEI_ARCH / volantmq 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
config.go 1.02 KB
一键复制 编辑 原始数据 按行查看 历史
hawklin 提交于 2018-05-11 16:12 . 账号和权限控制
package main
import (
"flag"
"fmt"
"github.com/spf13/viper"
)
type MQTTConfig struct {
MainConf *viper.Viper
RateLimitConf *viper.Viper
}
func (conf *MQTTConfig) GetViper(flags *flag.FlagSet, name string) (*viper.Viper, error) {
v := viper.New()
file := flags.String(name, "", name+" config file path")
if *file != "" {
v.SetConfigFile(*file)
} else {
v.SetConfigName(name)
v.AddConfigPath("conf")
v.SetConfigType("toml")
}
if err := v.ReadInConfig(); err != nil {
return nil, fmt.Errorf("%s:%s", name, err.Error())
}
return v, nil
}
func (conf *MQTTConfig) LoadConfigFile(flags *flag.FlagSet) error {
var err error
conf.MainConf, err = conf.GetViper(flags, "main")
if err != nil {
return err
}
conf.RateLimitConf, err = conf.GetViper(flags, "ratelimit")
if err != nil {
return err
}
return nil
}
func (conf *MQTTConfig) GetConf(name string) *viper.Viper {
item := conf.MainConf
switch name {
case "main":
item = conf.MainConf
case "ratelimit":
item = conf.RateLimitConf
}
return item
}
Go
1
https://gitee.com/kaifazhe/volantmq.git
git@gitee.com:kaifazhe/volantmq.git
kaifazhe
volantmq
volantmq
v0.0.4

搜索帮助