aboutsummaryrefslogtreecommitdiff
path: root/object/resolve/treefs_entry.go
diff options
context:
space:
mode:
Diffstat (limited to 'object/resolve/treefs_entry.go')
-rw-r--r--object/resolve/treefs_entry.go14
1 files changed, 11 insertions, 3 deletions
diff --git a/object/resolve/treefs_entry.go b/object/resolve/treefs_entry.go
index 402b47d2..af9760ca 100644
--- a/object/resolve/treefs_entry.go
+++ b/object/resolve/treefs_entry.go
@@ -1,9 +1,9 @@
package resolve
import (
+ "errors"
"fmt"
"io/fs"
- "strings"
"codeberg.org/lindenii/furgit/object"
"codeberg.org/lindenii/furgit/objectid"
@@ -37,11 +37,19 @@ func (treeFS *TreeFS) resolvePath(op treeFSOp, name string) (treeEntryValue, err
}
func (treeFS *TreeFS) pathResolveError(op treeFSOp, name string, err error) error {
- if err != nil && strings.Contains(err.Error(), "not found") {
+ if _, ok := errors.AsType[*PathNotFoundError](err); ok {
return treeFSPathError(op, name, fs.ErrNotExist)
}
- if err != nil && strings.Contains(err.Error(), "is not a tree") {
+ if _, ok := errors.AsType[*PathNotTreeError](err); ok {
+ return treeFSPathError(op, name, fs.ErrInvalid)
+ }
+
+ if _, ok := errors.AsType[*PathEmptyError](err); ok {
+ return treeFSPathError(op, name, fs.ErrInvalid)
+ }
+
+ if _, ok := errors.AsType[*PathSegmentEmptyError](err); ok {
return treeFSPathError(op, name, fs.ErrInvalid)
}