MCPcopy
hub / github.com/perkeep/perkeep / Open

Method Open

pkg/fs/fs.go:186–206  ·  view source on GitHub ↗
(ctx context.Context, req *fuse.OpenRequest, res *fuse.OpenResponse)

Source from the content-addressed store, hash-verified

184var _ fusefs.NodeOpener = (*node)(nil)
185
186func (n *node) Open(ctx context.Context, req *fuse.OpenRequest, res *fuse.OpenResponse) (fusefs.Handle, error) {
187 Logger.Printf("CAMLI Open on %v: %#v", n.blobref, req)
188 if isWriteFlags(req.Flags) {
189 return nil, fuse.EPERM
190 }
191 ss, err := n.schema(ctx)
192 if err != nil {
193 Logger.Printf("open of %v: %v", n.blobref, err)
194 return nil, handleEIOorEINTR(err)
195 }
196 if ss.Type() == schema.TypeDirectory {
197 return n, nil
198 }
199 fr, err := ss.NewFileReader(n.fs.fetcher)
200 if err != nil {
201 // Will only happen if ss.Type != "file" or "bytes"
202 Logger.Printf("NewFileReader(%s) = %v", n.blobref, err)
203 return nil, fuse.EIO
204 }
205 return &nodeReader{n: n, fr: fr}, nil
206}
207
208type nodeReader struct {
209 n *node

Callers

nothing calls this directly

Calls 6

schemaMethod · 0.95
isWriteFlagsFunction · 0.85
handleEIOorEINTRFunction · 0.85
PrintfMethod · 0.80
TypeMethod · 0.45
NewFileReaderMethod · 0.45

Tested by

no test coverage detected