github.com/unionj-cloud/go-doudou/v2@v2.3.5/toolkit/pathutils/pathutils.go (about) 1 package pathutils 2 3 import ( 4 "github.com/unionj-cloud/go-doudou/v2/toolkit/stringutils" 5 "os" 6 "path/filepath" 7 "runtime" 8 ) 9 10 // Abs converts relative path to absolute path 11 func Abs(rel string) string { 12 _, fileName, _, _ := runtime.Caller(1) 13 return filepath.Join(filepath.Dir(fileName), rel) 14 } 15 16 // FixPath fixes path 17 func FixPath(dir string, fallback string) (string, error) { 18 var ( 19 wd string 20 ret string 21 ) 22 if stringutils.IsEmpty(dir) { 23 wd, _ = os.Getwd() 24 ret = filepath.Join(wd, fallback) 25 return ret, nil 26 } 27 if !filepath.IsAbs(dir) { 28 wd, _ = os.Getwd() 29 ret = filepath.Join(wd, dir) 30 return ret, nil 31 } 32 return dir, nil 33 }