mirror of
https://github.com/go-task/task.git
synced 2024-12-14 10:52:43 +02:00
32 lines
576 B
Go
32 lines
576 B
Go
package filepathext
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
)
|
|
|
|
// SmartJoin joins two paths, but only if the second is not already an
|
|
// absolute path.
|
|
func SmartJoin(a, b string) string {
|
|
if filepath.IsAbs(b) {
|
|
return b
|
|
}
|
|
return filepath.Join(a, b)
|
|
}
|
|
|
|
// TryAbsToRel tries to convert an absolute path to relative based on the
|
|
// process working directory. If it can't, it returns the absolute path.
|
|
func TryAbsToRel(abs string) string {
|
|
wd, err := os.Getwd()
|
|
if err != nil {
|
|
return abs
|
|
}
|
|
|
|
rel, err := filepath.Rel(wd, abs)
|
|
if err != nil {
|
|
return abs
|
|
}
|
|
|
|
return rel
|
|
}
|