diff --git a/lfs/download_queue.go b/lfs/download_queue.go index cab3ea27..d46a1065 100644 --- a/lfs/download_queue.go +++ b/lfs/download_queue.go @@ -2,12 +2,9 @@ package lfs import ( "fmt" - "os" - "path/filepath" + "github.com/cheggaaa/pb" "sync" "sync/atomic" - - "github.com/cheggaaa/pb" ) type Downloadable struct { @@ -166,21 +163,12 @@ func (q *DownloadQueue) Process() { go func(n int) { for d := range q.downloadc { - fullPath := filepath.Join(LocalWorkingDir, d.Pointer.Name) - output, err := os.Create(fullPath) - if err != nil { - q.errorc <- Error(err) - f := atomic.AddInt64(&q.finished, 1) - q.bar.Prefix(fmt.Sprintf("(%d of %d files) ", f, q.files)) - q.wg.Done() - continue - } - cb := func(total, read int64, current int) error { q.bar.Add(current) return nil } - if err := PointerSmudgeObject(output, d.Pointer.Pointer, d.Object, cb); err != nil { + + if err := PointerSmudgeObject(d.Pointer.Pointer, d.Object, cb); err != nil { q.errorc <- Error(err) } diff --git a/lfs/pointer_smudge.go b/lfs/pointer_smudge.go index 26e4ae8a..a34d431e 100644 --- a/lfs/pointer_smudge.go +++ b/lfs/pointer_smudge.go @@ -42,7 +42,9 @@ func PointerSmudge(writer io.Writer, ptr *Pointer, workingfile string, cb CopyCa return nil } -func PointerSmudgeObject(writer io.Writer, ptr *Pointer, obj *objectResource, cb CopyCallback) error { +// PointerSmudgeObject uses a Pointer and objectResource to download the object to the +// media directory. It does not write the file to the working directory. +func PointerSmudgeObject(ptr *Pointer, obj *objectResource, cb CopyCallback) error { mediafile, err := LocalMediaPath(obj.Oid) if err != nil { return err @@ -58,23 +60,20 @@ func PointerSmudgeObject(writer io.Writer, ptr *Pointer, obj *objectResource, cb } } - var wErr *WrappedError if statErr != nil || stat == nil { - wErr = downloadObject(writer, ptr, obj, mediafile, cb) - } else { - wErr = readLocalFile(writer, ptr, mediafile, cb) - } + wErr := downloadObject(ptr, obj, mediafile, cb) - if wErr != nil { - sendApiEvent(apiEventFail) - return &SmudgeError{obj.Oid, mediafile, wErr} + if wErr != nil { + sendApiEvent(apiEventFail) + return &SmudgeError{obj.Oid, mediafile, wErr} + } } sendApiEvent(apiEventSuccess) return nil } -func downloadObject(writer io.Writer, ptr *Pointer, obj *objectResource, mediafile string, cb CopyCallback) *WrappedError { +func downloadObject(ptr *Pointer, obj *objectResource, mediafile string, cb CopyCallback) *WrappedError { reader, size, wErr := DownloadObject(obj) if reader != nil { defer reader.Close() @@ -105,7 +104,7 @@ func downloadObject(writer io.Writer, ptr *Pointer, obj *objectResource, mediafi return Errorf(err, "Error buffering media file.") } - return readLocalFile(writer, ptr, mediafile, nil) + return nil } func downloadFile(writer io.Writer, ptr *Pointer, workingfile, mediafile string, cb CopyCallback) *WrappedError {