Update ini.go
This commit is contained in:
parent
397365ddd2
commit
e5bdaa67f6
6
.idea/vcs.xml
Normal file
6
.idea/vcs.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
63
ini.go
63
ini.go
@ -20,7 +20,7 @@ func NewConfiguration(fileLocation string) *Configuration {
|
|||||||
return conf
|
return conf
|
||||||
}
|
}
|
||||||
|
|
||||||
func (config *Configuration) getSection(sectionName string) *ini.Section {
|
func (config *Configuration) GetSection(sectionName string) *ini.Section {
|
||||||
section, err := config.file.GetSection(sectionName)
|
section, err := config.file.GetSection(sectionName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("Error getting section %v in config: %v", sectionName, err)
|
fmt.Printf("Error getting section %v in config: %v", sectionName, err)
|
||||||
@ -29,57 +29,48 @@ func (config *Configuration) getSection(sectionName string) *ini.Section {
|
|||||||
return section
|
return section
|
||||||
}
|
}
|
||||||
|
|
||||||
func getChildSection(section *ini.Section, childSectionName string) (childSection *ini.Section, err error) {
|
func GetChildSection(section *ini.Section, childSectionName string) (childSection *ini.Section, err error) {
|
||||||
childSections := section.ChildSections()
|
childSections := section.ChildSections()
|
||||||
for _, childSection := range childSections {
|
for _, childSection = range childSections {
|
||||||
if childSection.Name() == childSectionName {
|
if childSection.Name() == childSectionName {
|
||||||
return childSection, nil
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil, errors.New("subsection " + childSectionName + " not found")
|
return nil, errors.New("subsection " + childSectionName + " not found")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetChildSections(section *ini.Section) (childSections []*ini.Section) {
|
||||||
|
return section.ChildSections()
|
||||||
|
}
|
||||||
|
|
||||||
func (config *Configuration) GetKey(path string) *ini.Key {
|
func (config *Configuration) GetKey(path string) *ini.Key {
|
||||||
splitPaths := strings.Split(path, ".")
|
splitPaths := strings.Split(path, ".")
|
||||||
if len(splitPaths) == 1 {
|
if len(splitPaths) == 1 {
|
||||||
splitPaths = append([]string{"."}, splitPaths...)
|
splitPaths = append([]string{"."}, splitPaths...)
|
||||||
}
|
}
|
||||||
section := config.getSection(splitPaths[0])
|
sectionMask := strings.Join(splitPaths[0:len(splitPaths)-1], ".")
|
||||||
var key *ini.Key
|
section := config.GetSection(sectionMask)
|
||||||
var err error
|
keyName := splitPaths[len(splitPaths)-1]
|
||||||
if len(splitPaths) > 2 {
|
key, err := section.GetKey(keyName)
|
||||||
tempSection := section
|
|
||||||
for i := 0; i < len(splitPaths)-1; i++ {
|
|
||||||
tempSection, err = getChildSection(tempSection, splitPaths[i])
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("Error getting child section %v: %v", splitPaths[i], err)
|
fmt.Printf("Error getting key %v: %v", keyName, err)
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
if len(splitPaths) == i+1 {
|
|
||||||
key, err = tempSection.GetKey(splitPaths[i+1])
|
|
||||||
if err != nil {
|
|
||||||
fmt.Printf("Error getting key %v: %v", splitPaths[i+1], err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
key, err = section.GetKey(splitPaths[1])
|
|
||||||
if err != nil {
|
|
||||||
fmt.Printf("Error getting key %v: %v", splitPaths[1], err)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return key
|
return key
|
||||||
}
|
}
|
||||||
|
|
||||||
func (config *Configuration) GetString(path string) string {
|
func (config *Configuration) GetAsString(path string) string {
|
||||||
return config.GetKey(path).String()
|
return config.GetKey(path).String()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (config *Configuration) GetStrings(path string) []string {
|
func (config *Configuration) SetValue(path string, value string) {
|
||||||
|
config.GetKey(path).SetValue(value)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (config *Configuration) GetAsStrings(path string) []string {
|
||||||
return config.GetKey(path).Strings(",")
|
return config.GetKey(path).Strings(",")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (config *Configuration) GetInt(path string) int {
|
func (config *Configuration) GetAsInt(path string) int {
|
||||||
var i int
|
var i int
|
||||||
var err error
|
var err error
|
||||||
i, err = config.GetKey(path).Int()
|
i, err = config.GetKey(path).Int()
|
||||||
@ -90,11 +81,11 @@ func (config *Configuration) GetInt(path string) int {
|
|||||||
return i
|
return i
|
||||||
}
|
}
|
||||||
|
|
||||||
func (config *Configuration) GetInts(path string) []int {
|
func (config *Configuration) GetAsInts(path string) []int {
|
||||||
return config.GetKey(path).Ints(",")
|
return config.GetKey(path).Ints(",")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (config *Configuration) GetUInt(path string) uint {
|
func (config *Configuration) GetAsUInt(path string) uint {
|
||||||
var i uint
|
var i uint
|
||||||
var err error
|
var err error
|
||||||
i, err = config.GetKey(path).Uint()
|
i, err = config.GetKey(path).Uint()
|
||||||
@ -105,11 +96,11 @@ func (config *Configuration) GetUInt(path string) uint {
|
|||||||
return i
|
return i
|
||||||
}
|
}
|
||||||
|
|
||||||
func (config *Configuration) GetUInts(path string) []uint {
|
func (config *Configuration) GetAsUInts(path string) []uint {
|
||||||
return config.GetKey(path).Uints(",")
|
return config.GetKey(path).Uints(",")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (config *Configuration) GetFloat(path string) float64 {
|
func (config *Configuration) GetAsFloat(path string) float64 {
|
||||||
var f float64
|
var f float64
|
||||||
var err error
|
var err error
|
||||||
f, err = config.GetKey(path).Float64()
|
f, err = config.GetKey(path).Float64()
|
||||||
@ -120,11 +111,11 @@ func (config *Configuration) GetFloat(path string) float64 {
|
|||||||
return f
|
return f
|
||||||
}
|
}
|
||||||
|
|
||||||
func (config *Configuration) GetFloats(path string) []float64 {
|
func (config *Configuration) GetAsFloats(path string) []float64 {
|
||||||
return config.GetKey(path).Float64s(",")
|
return config.GetKey(path).Float64s(",")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (config *Configuration) GetBoolean(path string) bool {
|
func (config *Configuration) GetAsBoolean(path string) bool {
|
||||||
var b bool
|
var b bool
|
||||||
var err error
|
var err error
|
||||||
b, err = config.GetKey(path).Bool()
|
b, err = config.GetKey(path).Bool()
|
||||||
@ -135,7 +126,7 @@ func (config *Configuration) GetBoolean(path string) bool {
|
|||||||
return b
|
return b
|
||||||
}
|
}
|
||||||
|
|
||||||
func (config *Configuration) GetBooleans(path string) []bool {
|
func (config *Configuration) GetAsBooleans(path string) []bool {
|
||||||
return config.GetKey(path).Bools(",")
|
return config.GetKey(path).Bools(",")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user