0 Star 1 Fork 0

有点心急/gotls

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
config.go 2.33 KB
一键复制 编辑 原始数据 按行查看 历史
有点心急 提交于 2024-11-04 15:55 . 24.11.04
package configT
import (
"github.com/spf13/viper"
"gitee.com/ydxj/gotls/baseT/logT"
"gitee.com/ydxj/gotls/baseT/osT"
)
type Config struct {
Viper *viper.Viper
}
func NewConfig(filepath string, ty ...string) *Config {
// 获取配置
v := viper.New()
// 设置读取的文件路径
v.AddConfigPath(osT.GetFileDir(filepath))
// 设置读取的文件名
v.SetConfigName(osT.GetFileNameWithSuffix(filepath))
// 设置文件的类型
if len(ty) > 0 {
v.SetConfigType(osT.GetFileSuffix(ty[0]))
} else {
v.SetConfigType(osT.GetFileSuffix(filepath)[1:])
}
// 尝试进行配置读取
err := v.ReadInConfig()
if err != nil {
logT.Error(err.Error())
panic("配置读取失败: " + err.Error())
}
return &Config{Viper: v}
}
func NewYamlConfig(configPath string) *Config {
return NewConfig(configPath)
}
func (config *Config) ReadBool(name string, defaultValue ...int) bool {
if len(defaultValue) > 0 {
config.Viper.SetDefault(name, defaultValue[0])
}
return config.Viper.GetBool(name)
}
func (config *Config) ReadInt(name string, defaultValue ...int) int {
if len(defaultValue) > 0 {
config.Viper.SetDefault(name, defaultValue[0])
}
return config.Viper.GetInt(name)
}
func (config *Config) ReadIntSlice(name string, defaultValue ...int) []int {
if len(defaultValue) > 0 {
config.Viper.SetDefault(name, defaultValue[0])
}
return config.Viper.GetIntSlice(name)
}
func (config *Config) ReadInt32(name string, defaultValue ...int) int32 {
if len(defaultValue) > 0 {
config.Viper.SetDefault(name, defaultValue[0])
}
return config.Viper.GetInt32(name)
}
func (config *Config) ReadInt64(name string, defaultValue ...int) int64 {
if len(defaultValue) > 0 {
config.Viper.SetDefault(name, defaultValue[0])
}
return config.Viper.GetInt64(name)
}
func (config *Config) ReadString(name string, defaultValue ...string) string {
if len(defaultValue) > 0 {
config.Viper.SetDefault(name, defaultValue[0])
}
return config.Viper.GetString(name)
}
func (config *Config) ReadStringSlice(name string, defaultValue ...[]string) []string {
if len(defaultValue) > 0 {
config.Viper.SetDefault(name, defaultValue[0])
}
return config.Viper.GetStringSlice(name)
}
func (config *Config) ReadAny(name string, defaultValue ...any) any {
if len(defaultValue) > 0 {
config.Viper.SetDefault(name, defaultValue[0])
}
return config.Viper.Get(name)
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/ydxj/gotls.git
git@gitee.com:ydxj/gotls.git
ydxj
gotls
gotls
v0.2.2

搜索帮助