MCPcopy
hub / github.com/perkeep/perkeep / readPrefixOrFile

Function readPrefixOrFile

pkg/index/receive.go:467–479  ·  view source on GitHub ↗

readPrefixOrFile executes a given func with a reader on the passed prefix and falls back to passing a reader on the whole file if the func returns an error.

(prefix []byte, fetcher blob.Fetcher, b *schema.Blob, fn func(filePrefixReader) error)

Source from the content-addressed store, hash-verified

465// readPrefixOrFile executes a given func with a reader on the passed prefix and
466// falls back to passing a reader on the whole file if the func returns an error.
467func readPrefixOrFile(prefix []byte, fetcher blob.Fetcher, b *schema.Blob, fn func(filePrefixReader) error) (err error) {
468 pr := bytes.NewReader(prefix)
469 err = fn(pr)
470 if err == io.EOF || err == io.ErrUnexpectedEOF {
471 var fr *schema.FileReader
472 fr, err = b.NewFileReader(fetcher)
473 if err == nil {
474 err = fn(fr)
475 fr.Close()
476 }
477 }
478 return err
479}
480
481const msdosEpoch = "1980-01-01T00:00:00Z"
482

Callers 1

populateFileMethod · 0.85

Calls 2

CloseMethod · 0.95
NewFileReaderMethod · 0.45

Tested by

no test coverage detected