envconf/parsers.go

58 lines
1.3 KiB
Go
Raw Permalink Normal View History

2021-03-24 10:51:09 +00:00
package envconf
import ("strconv"
"fmt"
"errors"
2021-03-25 10:08:26 +00:00
"os"
"path"
2021-03-24 10:51:09 +00:00
"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
}
2021-03-25 10:08:26 +00:00
func parseDirectory(_ string, str string)(ret cValue) {
wd, err := os.Getwd()
2021-03-25 08:55:14 +00:00
if err == nil {
2021-03-25 10:08:26 +00:00
if path.IsAbs(str) {
ret.strval = path.Clean(str)
} else {
ret.strval = path.Join(wd, str)
}
2021-03-25 08:55:14 +00:00
} else {
2021-03-25 10:08:26 +00:00
ret.strval = path.Clean(str)
2021-03-25 08:55:14 +00:00
}
2021-03-24 10:51:09 +00:00
return
}
2021-03-24 14:15:37 +00:00
2021-03-25 08:55:14 +00:00
func parseString(_ string, str string)(ret cValue) {
ret.strval = str
2021-03-24 14:15:37 +00:00
return
}
2021-03-25 08:55:14 +00:00