github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/utils/path/join.go (about) 1 package path 2 3 import ( 4 "os" 5 "strings" 6 7 "github.com/lmorg/murex/utils/consts" 8 ) 9 10 func Join(a []string) (s string) { 11 switch { 12 case len(a) == 0: 13 return consts.PathSlash 14 15 case a[0] == consts.PathSlash: 16 s = strings.Join(a[1:], consts.PathSlash) 17 s = consts.PathSlash + s 18 19 default: 20 s = strings.Join(a, consts.PathSlash) 21 } 22 23 if s != consts.PathSlash { 24 if f, _ := os.Stat(s); f != nil && f.IsDir() { 25 s += consts.PathSlash 26 } 27 } 28 return s 29 }