1 Star 0 Fork 1

yoyofx / cfg

forked from qiqi / cfg 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
nacos.go 1.33 KB
一键复制 编辑 原始数据 按行查看 历史
qiqi 提交于 2021-01-28 00:35 . nacos支持toml
package cfg
import (
"github.com/BurntSushi/toml"
"github.com/nacos-group/nacos-sdk-go/clients/config_client"
"github.com/nacos-group/nacos-sdk-go/vo"
"gopkg.in/yaml.v3"
"path/filepath"
"strings"
)
type NacosBase struct {
ConfigClient config_client.IConfigClient
GroupId string
DataId string
}
// NewNacosData get a cfg handler by toml string content
// nacos目前没有toml支持,暂时统一使用yaml格式
func NewNacos(baseInfo *NacosBase) *Handler {
if baseInfo == nil || baseInfo.ConfigClient == nil {
panic("not found nacos base config information")
}
if baseInfo.GroupId == "" || baseInfo.DataId == "" {
panic("not found nacos GroupId or DataId")
}
confFileType := strings.Trim(filepath.Ext(baseInfo.DataId), ".")
handler := Handler{ConfType: confFileType, Source: "nacos"}
content, err := baseInfo.ConfigClient.GetConfig(vo.ConfigParam{
DataId: baseInfo.DataId,
Group: baseInfo.GroupId})
if err != nil {
panic("nocos config content get error:" + err.Error())
}
switch confFileType {
case "toml":
if _, err := toml.Decode(content, &handler.confInfo); err != nil {
panic(err)
}
case "yml", "yaml":
if err := yaml.Unmarshal([]byte(content), &handler.confInfo); err != nil {
panic(err)
}
default:
panic("can not support this type config file:" + confFileType)
}
return &handler
}
Go
1
https://gitee.com/yoyofx/cfg.git
git@gitee.com:yoyofx/cfg.git
yoyofx
cfg
cfg
master

搜索帮助