(path string)
| 478 | } |
| 479 | |
| 480 | func (w *Worktree) copyFileToStorage(path string) (hash plumbing.Hash, err error) { |
| 481 | fi, err := w.Filesystem.Lstat(path) |
| 482 | if err != nil { |
| 483 | return plumbing.ZeroHash, err |
| 484 | } |
| 485 | |
| 486 | obj := w.r.Storer.NewEncodedObject() |
| 487 | obj.SetType(plumbing.BlobObject) |
| 488 | obj.SetSize(fi.Size()) |
| 489 | |
| 490 | writer, err := obj.Writer() |
| 491 | if err != nil { |
| 492 | return plumbing.ZeroHash, err |
| 493 | } |
| 494 | |
| 495 | defer ioutil.CheckClose(writer, &err) |
| 496 | |
| 497 | if fi.Mode()&os.ModeSymlink != 0 { |
| 498 | err = w.fillEncodedObjectFromSymlink(writer, path, fi) |
| 499 | } else { |
| 500 | err = w.fillEncodedObjectFromFile(writer, path, fi) |
| 501 | } |
| 502 | |
| 503 | if err != nil { |
| 504 | return plumbing.ZeroHash, err |
| 505 | } |
| 506 | |
| 507 | return w.r.Storer.SetEncodedObject(obj) |
| 508 | } |
| 509 | |
| 510 | func (w *Worktree) fillEncodedObjectFromFile(dst io.Writer, path string, _ os.FileInfo) (err error) { |
| 511 | src, err := w.Filesystem.Open(path) |
no test coverage detected