1 Star 1 Fork 0

yanpin-dev/propeller

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
config.go 1011 Bytes
一键复制 编辑 原始数据 按行查看 历史
zh_season 提交于 2021-03-17 18:26 . move package.
package config
import (
"fmt"
"github.com/spf13/viper"
"os"
)
const (
DefaultConfigFile = "config/config.yml"
EnvCfgFile = "CFG_FILE"
Prefix = "propeller"
EnvProvider = "CFG_REMOTE_PROVIDER"
EnvEndpoint = "CFG_REMOTE_ENDPOINT"
EnvPath = "CFG_REMOTE_PATH"
EnvType = "CFG_TYPE"
)
func NewViper() (*viper.Viper, error) {
var (
err error
v = viper.New()
)
provider := os.Getenv(EnvProvider)
if provider != "" {
endpoint := os.Getenv(EnvEndpoint)
path := os.Getenv(EnvPath)
cfgType := os.Getenv(EnvType)
v.SetConfigType(cfgType)
v.AddRemoteProvider(provider, endpoint, path)
if err := v.ReadRemoteConfig(); err != nil {
return nil, err
}
} else {
file := os.Getenv(EnvCfgFile)
if file == "" {
file = DefaultConfigFile
}
v.AddConfigPath(".")
v.SetConfigFile(file)
if err := v.ReadInConfig(); err == nil {
fmt.Printf("use config file -> %s\n", v.ConfigFileUsed())
} else {
return nil, err
}
}
return v.Sub(Prefix), err
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/yanpin-dev/propeller.git
git@gitee.com:yanpin-dev/propeller.git
yanpin-dev
propeller
propeller
v0.3.1

搜索帮助