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  }