diff --git a/parsers.go b/parsers.go index d80a460..fc588bc 100644 --- a/parsers.go +++ b/parsers.go @@ -2,7 +2,8 @@ package envconf import ("strconv" "fmt" "errors" - "path/filepath" + "os" + "path" "time") func parseInt(key string, str string)(ret cValue) { @@ -35,12 +36,16 @@ func parseBool(key string, str string)(ret cValue) { return } -func parseDirectory(key string, str string)(ret cValue) { - val, err := filepath.Abs(str) +func parseDirectory(_ string, str string)(ret cValue) { + wd, err := os.Getwd() if err == nil { - ret.strval = val + if path.IsAbs(str) { + ret.strval = path.Clean(str) + } else { + ret.strval = path.Join(wd, str) + } } else { - ret.err = errors.New(fmt.Sprintf(`Environment variable "%s" is not of type directory.`, key)) + ret.strval = path.Clean(str) } return }