diff options
Diffstat (limited to 'util/pathutil/pathutil.go')
| -rw-r--r-- | util/pathutil/pathutil.go | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/util/pathutil/pathutil.go b/util/pathutil/pathutil.go new file mode 100644 index 000000000..6b3728d9f --- /dev/null +++ b/util/pathutil/pathutil.go @@ -0,0 +1,28 @@ +// Copyright (c) Tailscale Inc & AUTHORS +// SPDX-License-Identifier: BSD-3-Clause + +// package pathutil provides utility functions for working with URL paths. +package pathutil + +import ( + "path" + "strings" +) + +const ( + sepString = "/" + sepStringAndDot = "/." + sep = '/' +) + +func Split(p string) []string { + return strings.Split(strings.Trim(path.Clean(p), sepStringAndDot), sepString) +} + +func Join(parts ...string) string { + return sepString + strings.Join(parts, sepString) +} + +func IsRoot(path string) bool { + return len(path) == 0 || len(path) == 1 && path[0] == sep +} |
