envconf/parsers.go
2021-03-24 16:05:45 +01:00

51 lines
1.2 KiB
Go

package envconf
import ("strconv"
"fmt"
"errors"
"strings"
"time")
func parseInt(key string, str string)(ret cValue) {
val, err := strconv.ParseInt(str, 10, 64)
fmt.Println(val)
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)
fmt.Println(val)
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)
fmt.Printf("str = (%s)\n", str)
fmt.Println(val)
if err == nil {
ret.boolval = val
} else {
ret.err = errors.New(fmt.Sprintf(`Environment variable "%s" is not of type bool.`, key))
}
return
}
func parseString(_ string, str string)(ret cValue) {
ret.strval = str
return
}
func parseDirectory(_ string, str string)(ret cValue) {
ret.strval = strings.TrimRight(str, "/")
return
}