v1.0.0
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
package iniConfig
|
||||
|
||||
import (
|
||||
"gopkg.in/ini.v1"
|
||||
)
|
||||
|
||||
type IniConfig struct {
|
||||
Err error
|
||||
Config *ini.File
|
||||
Default map[string]map[string]string // 默认配置
|
||||
FileName string
|
||||
}
|
||||
|
||||
// 获取配置
|
||||
func (t *IniConfig) GetValue(section string, name string) *ini.Key {
|
||||
return t.Config.Section(section).Key(name)
|
||||
}
|
||||
|
||||
// 设置配置
|
||||
func (t *IniConfig) SetValue(section string, name string, value string) error {
|
||||
t.Config.Section(section).Key(name).SetValue(value)
|
||||
return t.Config.SaveTo(t.FileName)
|
||||
}
|
||||
|
||||
// 获取配置
|
||||
func (t *IniConfig) GetValueString(section string, name string) string {
|
||||
return t.Config.Section(section).Key(name).String()
|
||||
}
|
||||
|
||||
// 获取字符串配置,如果没有会查找默认值
|
||||
func (t *IniConfig) GetValueStringOrDefault(section string, name string) string {
|
||||
value := t.GetValueString(section, name)
|
||||
if value == "" && t.Default[section] != nil && t.Default[section][name] != "" {
|
||||
return t.Default[section][name]
|
||||
} else {
|
||||
return value
|
||||
}
|
||||
}
|
||||
|
||||
// 获取配置
|
||||
func (t *IniConfig) GetValueInt(section string, name string) int {
|
||||
return t.Config.Section(section).Key(name).MustInt()
|
||||
}
|
||||
|
||||
// 获取组配置
|
||||
func (t *IniConfig) GetSection(section string, result interface{}) error {
|
||||
if group, err := t.Config.GetSection(section); err != nil {
|
||||
return err
|
||||
} else {
|
||||
if err := group.MapTo(result); err != nil {
|
||||
return err
|
||||
} else {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 删除组
|
||||
func (t *IniConfig) DeleteSection(section string) {
|
||||
t.Config.DeleteSection(section)
|
||||
t.Config.SaveTo(t.FileName)
|
||||
}
|
||||
|
||||
// 创建一个配置对象
|
||||
func NewIniConfig(filename string) *IniConfig {
|
||||
config, err := ini.Load(filename)
|
||||
|
||||
return &IniConfig{
|
||||
Err: err,
|
||||
Config: config,
|
||||
FileName: filename,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user