|
- package grconfig
-
- import (
- "bytes"
- "errors"
- "gopkg.in/yaml.v2"
- "strings"
- )
-
- type ConfigerChannelYAML struct {
- tmp interface{}
- filename string
- adapter string
- }
-
- func (conf *ConfigerChannelYAML) String(item string) string {
- chunks := strings.SplitN(item, ".", 2)
- target := recursiveParse(chunks[1], conf.tmp)
- if str, ok := target.(string); ok {
- return str
- }
- return ""
- }
-
- func (conf *ConfigerChannelYAML) Item(item string, t interface{}) (err error) {
- chunks := strings.SplitN(item, ".", 2)
- target := recursiveParse(chunks[1], conf.tmp)
- if target == nil {
- err = errors.New("item doesn't exists")
- return
- }
- out, _ := yaml.Marshal(target)
- err = yaml.Unmarshal(out, t)
- return
- }
-
- func parseYAML(buf bytes.Buffer) interface{} {
- var v interface{}
- yaml.Unmarshal(buf.Bytes(), &v)
- return v
- }
|