opportunistic absolute file path
This commit is contained in:
		
							
								
								
									
										15
									
								
								parsers.go
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								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
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user