aboutsummaryrefslogtreecommitdiffstats
path: root/drive/revision_download.go
diff options
context:
space:
mode:
Diffstat (limited to 'drive/revision_download.go')
-rw-r--r--drive/revision_download.go9
1 files changed, 6 insertions, 3 deletions
diff --git a/drive/revision_download.go b/drive/revision_download.go
index c26c3ce..f06dac3 100644
--- a/drive/revision_download.go
+++ b/drive/revision_download.go
@@ -8,10 +8,10 @@ import (
type DownloadRevisionArgs struct {
Out io.Writer
+ Progress io.Writer
FileId string
RevisionId string
Force bool
- NoProgress bool
Stdout bool
}
@@ -35,9 +35,12 @@ func (self *Drive) DownloadRevision(args DownloadRevisionArgs) (err error) {
// Close body on function exit
defer res.Body.Close()
+ // Wrap response body in progress reader
+ srcReader := getProgressReader(res.Body, args.Progress, res.ContentLength)
+
if args.Stdout {
// Write file content to stdout
- _, err := io.Copy(os.Stdout, res.Body)
+ _, err := io.Copy(args.Out, srcReader)
return err
}
@@ -56,7 +59,7 @@ func (self *Drive) DownloadRevision(args DownloadRevisionArgs) (err error) {
defer outFile.Close()
// Save file to disk
- bytes, err := io.Copy(outFile, res.Body)
+ bytes, err := io.Copy(outFile, srcReader)
if err != nil {
return fmt.Errorf("Failed saving file: %s", err)
}