aboutsummaryrefslogtreecommitdiff
path: root/object/resolve/treefs_path.go
diff options
context:
space:
mode:
Diffstat (limited to 'object/resolve/treefs_path.go')
-rw-r--r--object/resolve/treefs_path.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/object/resolve/treefs_path.go b/object/resolve/treefs_path.go
new file mode 100644
index 00000000..cb5735d2
--- /dev/null
+++ b/object/resolve/treefs_path.go
@@ -0,0 +1,28 @@
+package resolve
+
+import (
+ "io/fs"
+ "strings"
+)
+
+func treeFSValidPath(name string) bool {
+ return name == "." || fs.ValidPath(name)
+}
+
+func treeFSSplitPath(name string) [][]byte {
+ if name == "." {
+ return nil
+ }
+
+ parts := strings.Split(name, "/")
+ out := make([][]byte, len(parts))
+ for i, part := range parts {
+ out[i] = []byte(part)
+ }
+
+ return out
+}
+
+func treeFSPathError(op treeFSOp, path string, err error) error {
+ return &fs.PathError{Op: op.pathErrorOp(), Path: path, Err: err}
+}