summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/mattermost/rsc/fuse/tree.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/mattermost/rsc/fuse/tree.go')
-rw-r--r--vendor/github.com/mattermost/rsc/fuse/tree.go93
1 files changed, 0 insertions, 93 deletions
diff --git a/vendor/github.com/mattermost/rsc/fuse/tree.go b/vendor/github.com/mattermost/rsc/fuse/tree.go
deleted file mode 100644
index fec0a748f..000000000
--- a/vendor/github.com/mattermost/rsc/fuse/tree.go
+++ /dev/null
@@ -1,93 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// FUSE directory tree, for servers that wish to use it with the service loop.
-
-package fuse
-
-import (
- "os"
- pathpkg "path"
- "strings"
-)
-
-// A Tree implements a basic directory tree for FUSE.
-type Tree struct {
- tree
-}
-
-func (t *Tree) Root() (Node, Error) {
- return &t.tree, nil
-}
-
-// Add adds the path to the tree, resolving to the given node.
-// If path or a prefix of path has already been added to the tree,
-// Add panics.
-func (t *Tree) Add(path string, node Node) {
- path = pathpkg.Clean("/" + path)[1:]
- elems := strings.Split(path, "/")
- dir := Node(&t.tree)
- for i, elem := range elems {
- dt, ok := dir.(*tree)
- if !ok {
- panic("fuse: Tree.Add for " + strings.Join(elems[:i], "/") + " and " + path)
- }
- n := dt.lookup(elem)
- if n != nil {
- if i+1 == len(elems) {
- panic("fuse: Tree.Add for " + path + " conflicts with " + elem)
- }
- dir = n
- } else {
- if i+1 == len(elems) {
- dt.add(elem, node)
- } else {
- dir = &tree{}
- dt.add(elem, dir)
- }
- }
- }
-}
-
-type treeDir struct {
- name string
- node Node
-}
-
-type tree struct {
- dir []treeDir
-}
-
-func (t *tree) lookup(name string) Node {
- for _, d := range t.dir {
- if d.name == name {
- return d.node
- }
- }
- return nil
-}
-
-func (t *tree) add(name string, n Node) {
- t.dir = append(t.dir, treeDir{name, n})
-}
-
-func (t *tree) Attr() Attr {
- return Attr{Mode: os.ModeDir | 0555}
-}
-
-func (t *tree) Lookup(name string, intr Intr) (Node, Error) {
- n := t.lookup(name)
- if n != nil {
- return n, nil
- }
- return nil, ENOENT
-}
-
-func (t *tree) ReadDir(intr Intr) ([]Dirent, Error) {
- var out []Dirent
- for _, d := range t.dir {
- out = append(out, Dirent{Name: d.name})
- }
- return out, nil
-}