32 lines
501 B
Go
32 lines
501 B
Go
package gograph
|
|
|
|
import (
|
|
"path"
|
|
"strings"
|
|
)
|
|
|
|
// Split p on /
|
|
func split(p string) []string {
|
|
return strings.Split(p, "/")
|
|
}
|
|
|
|
// Returns the depth or number of / in a given path
|
|
func PathDepth(p string) int {
|
|
parts := split(p)
|
|
if len(parts) == 2 && parts[1] == "" {
|
|
return 1
|
|
}
|
|
return len(parts)
|
|
}
|
|
|
|
func splitPath(p string) (parent, name string) {
|
|
if p[0] != '/' {
|
|
p = "/" + p
|
|
}
|
|
parent, name = path.Split(p)
|
|
l := len(parent)
|
|
if parent[l-1] == '/' {
|
|
parent = parent[:l-1]
|
|
}
|
|
return
|
|
}
|