diff options
Diffstat (limited to 'drive/download.go')
| -rw-r--r-- | drive/download.go | 25 | 
1 files changed, 17 insertions, 8 deletions
| diff --git a/drive/download.go b/drive/download.go index 9a35912..57e0160 100644 --- a/drive/download.go +++ b/drive/download.go @@ -13,43 +13,52 @@ type DownloadFileArgs struct {      Stdout bool  } -func (self *Drive) Download(args DownloadFileArgs) { +func (self *Drive) Download(args DownloadFileArgs) (err error) {      getFile := self.service.Files.Get(args.Id)      f, err := getFile.Do() -    errorF(err, "Failed to get file: %s", err) +    if err != nil { +        return fmt.Errorf("Failed to get file: %s", err) +    }      res, err := getFile.Download() -    errorF(err, "Failed to download file: %s", err) +    if err != nil { +        return fmt.Errorf("Failed to download file: %s", err) +    }      // Close body on function exit      defer res.Body.Close()      if args.Stdout {          // Write file content to stdout -        io.Copy(os.Stdout, res.Body) -        return +        _, err := io.Copy(os.Stdout, res.Body) +        return err      }      // Check if file exists      if !args.Force && fileExists(f.Name) { -        exitF("File '%s' already exists, use --force to overwrite", f.Name) +        return fmt.Errorf("File '%s' already exists, use --force to overwrite", f.Name)      }      // Create new file      outFile, err := os.Create(f.Name) -    errorF(err, "Unable to create new file: %s", err) +    if err != nil { +        return fmt.Errorf("Unable to create new file: %s", err) +    }      // Close file on function exit      defer outFile.Close()      // Save file to disk      bytes, err := io.Copy(outFile, res.Body) -    errorF(err, "Failed saving file: %s", err) +    if err != nil { +        return fmt.Errorf("Failed saving file: %s", err) +    }      fmt.Printf("Downloaded '%s' at %s, total %d\n", f.Name, "x/s", bytes)      //if deleteSourceFile {      //    self.Delete(args.Id)      //} +    return  } | 
