diff options
| author | 2026-04-02 06:23:30 +0000 | |
|---|---|---|
| committer | 2026-04-02 06:28:39 +0000 | |
| commit | a041d523de389b65b98a5373a8034041db2a8d83 (patch) | |
| tree | 7b423dc735f463be616045f2c3c2095a7737aca7 /object/fetch/treefs_entry.go | |
| parent | research: Add dynamic pack resources (diff) | |
| signature | No signature | |
*: Remove
Diffstat (limited to 'object/fetch/treefs_entry.go')
| -rw-r--r-- | object/fetch/treefs_entry.go | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/object/fetch/treefs_entry.go b/object/fetch/treefs_entry.go deleted file mode 100644 index e577d86c..00000000 --- a/object/fetch/treefs_entry.go +++ /dev/null @@ -1,85 +0,0 @@ -package fetch - -import ( - "errors" - "fmt" - "io/fs" - - objectid "codeberg.org/lindenii/furgit/object/id" - "codeberg.org/lindenii/furgit/object/tree" -) - -func (treeFS *TreeFS) resolvePath(op treeFSOp, name string) (treeEntryValue, error) { - if !treeFSValidPath(name) { - return treeEntryValue{}, treeFSPathError(op, name, fs.ErrInvalid) - } - - if name == "." { - return treeEntryValue{ - name: ".", - mode: tree.FileModeDir, - treeID: treeFS.rootTree, - treeEntry: treeFS.rootEntry, - }, nil - } - - entry, err := treeFS.fetcher.Path(treeFS.rootTree, tree.SplitPath([]byte(name))) - if err != nil { - return treeEntryValue{}, treeFS.pathResolveError(op, name, err) - } - - return treeEntryValue{ - name: string(entry.Name), - mode: entry.Mode, - objectID: entry.ID, - treeEntry: &entry, - }, nil -} - -func (treeFS *TreeFS) pathResolveError(op treeFSOp, name string, err error) error { - if _, ok := errors.AsType[*PathNotFoundError](err); ok { - return treeFSPathError(op, name, fs.ErrNotExist) - } - - 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) - } - - return treeFSPathError(op, name, err) -} - -type treeEntryValue struct { - name string - mode tree.FileMode - objectID objectid.ObjectID - treeID objectid.ObjectID - treeEntry *tree.TreeEntry -} - -func (entry treeEntryValue) isDir() bool { - return entry.mode == tree.FileModeDir -} - -func (entry treeEntryValue) blobSize(fetcher *Fetcher) (int64, error) { - return fetcher.Size(entry.objectID) -} - -func (entry treeEntryValue) subtreeID() (objectid.ObjectID, error) { - if entry.name == "." { - return entry.treeID, nil - } - - if entry.mode != tree.FileModeDir { - return objectid.ObjectID{}, fmt.Errorf("object/fetch: path %q is not a tree", entry.name) - } - - return entry.objectID, nil -} |
