2013-11-15 15:55:45 -08:00
|
|
|
package graphdb
|
2013-10-04 19:25:15 -07:00
|
|
|
|
|
|
|
import (
|
|
|
|
"path"
|
|
|
|
"strings"
|
|
|
|
)
|
|
|
|
|
|
|
|
// Split p on /
|
|
|
|
func split(p string) []string {
|
|
|
|
return strings.Split(p, "/")
|
|
|
|
}
|
|
|
|
|
2015-06-16 12:51:27 +03:00
|
|
|
// PathDepth returns the depth or number of / in a given path
|
2013-10-24 16:49:28 -07:00
|
|
|
func PathDepth(p string) int {
|
2013-10-04 19:25:15 -07:00
|
|
|
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
|
|
|
|
}
|