MCPcopy Index your code
hub / github.com/perkeep/perkeep / Lookup

Method Lookup

pkg/fs/root.go:108–150  ·  view source on GitHub ↗
(ctx context.Context, name string)

Source from the content-addressed store, hash-verified

106}
107
108func (n *root) Lookup(ctx context.Context, name string) (fs.Node, error) {
109 Logger.Printf("root.Lookup(%s)", name)
110 switch name {
111 case ".quitquitquit":
112 log.Fatalf("Shutting down due to root .quitquitquit lookup.")
113 case "WELCOME.txt":
114 return staticFileNode("Welcome to PerkeepFS.\n\nMore information is available in the pk-mount documentation.\n\nSee https://perkeep.org/cmd/pk-mount/ , or run 'go doc perkeep.org/cmd/pk-mount'.\n"), nil
115 case "recent":
116 return n.getRecentDir(), nil
117 case "tag", "date":
118 return notImplementDirNode{}, nil
119 case "at":
120 return n.getAtDir(), nil
121 case "roots":
122 return n.getRootsDir(), nil
123 case "versions":
124 return n.getVersionsDir(), nil
125 case "sha1-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx":
126 return notImplementDirNode{}, nil
127 case "sha224-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx":
128 return notImplementDirNode{}, nil
129 case ".camli_fs_stats":
130 return statsDir{}, nil
131 case "mach_kernel", ".hidden", "._.":
132 // Just quiet some log noise on OS X.
133 return nil, fuse.ENOENT
134 }
135
136 if br, ok := blob.Parse(name); ok {
137 Logger.Printf("Root lookup of blobref. %q => %v", name, br)
138 node := &node{fs: n.fs, blobref: br}
139 if _, err := node.schema(ctx); err != nil {
140 if os.IsNotExist(err) {
141 return nil, fuse.ENOENT
142 } else {
143 return nil, handleEIOorEINTR(err)
144 }
145 }
146 return node, nil
147 }
148 Logger.Printf("Bogus root lookup of %q", name)
149 return nil, fuse.ENOENT
150}

Callers

nothing calls this directly

Calls 10

getRecentDirMethod · 0.95
getAtDirMethod · 0.95
getRootsDirMethod · 0.95
getVersionsDirMethod · 0.95
schemaMethod · 0.95
ParseFunction · 0.92
staticFileNodeTypeAlias · 0.85
handleEIOorEINTRFunction · 0.85
PrintfMethod · 0.80
FatalfMethod · 0.65

Tested by

no test coverage detected