package envconf import ("strconv" "fmt" "errors" "path/filepath" "time") func parseInt(key string, str string)(ret cValue) { val, err := strconv.ParseInt(str, 10, 64) if err == nil { ret.intval = val } else { ret.err = errors.New(fmt.Sprintf(`Environment variable "%s" is not of type int.`, key)) } return } func parseDuration(key string, str string)(ret cValue) { val, err := time.ParseDuration(str) if err == nil { ret.durval = val } else { ret.err = errors.New(fmt.Sprintf(`Environment variable "%s" is not of type duration.`, key)) } return } func parseBool(key string, str string)(ret cValue) { val, err := strconv.ParseBool(str) if err == nil { ret.boolval = val } else { ret.err = errors.New(fmt.Sprintf(`Environment variable "%s" is not of type bool.`, key)) } return } func parseDirectory(key string, str string)(ret cValue) { val, err := filepath.Abs(str) if err == nil { ret.strval = val } else { ret.err = errors.New(fmt.Sprintf(`Environment variable "%s" is not of type directory.`, key)) } return } func parseString(_ string, str string)(ret cValue) { ret.strval = str return }