func ConfigParseConfig(c Config) error {
data := c.Get("keys.configdata")
if data == nil {
return nil
}
switch c.Get("keys.configtype") {
case "json":
return json.Unmarshal(data.([]byte), c)
case "xml":
return xml.Unmarshal(data.([]byte), c)
}
return nil
}
func ConfigParseArgs(c Config) (err error) {
for _, str := range os.Args[1:] {
if !strings.HasPrefix(str, "--") {
continue
}
c.Set(split2byte(str[2:], '='))
}
return
}
func ConfigParseEnvs(c Config) error {
for _, value := range os.Environ() {
if strings.HasPrefix(value, "ENV_") {
k, v := split2byte(value, '=')
k = strings.ToLower(strings.Replace(k, "_", ".", -1))[4:]
c.Set(k, v)
}
}
return nil
}
func ConfigParseMods(c Config) error {
mod, ok := c.Get("enable").([]string)
if !ok {
modi, ok := c.Get("enable").([]interface{})
if ok {
mod = make([]string, len(modi))
for i, s := range modi {
mod[i] = fmt.Sprint(s)
}
}else {
return nil
}
}
for _, i := range mod {
ConvertTo(c.Get("mods." + i), c.Get(""))
}
return nil
}
func ConfigParseHelp(c Config) error {
ok := c.Get("keys.help") != nil
if ok {
JSON(c)
}
return nil
}