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)
| 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. |
| 467 | func 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 | |
| 481 | const msdosEpoch = "1980-01-01T00:00:00Z" |
| 482 |
no test coverage detected