diff options
| author | Petter Rasmussen | 2016-02-16 22:17:54 +0100 |
|---|---|---|
| committer | Petter Rasmussen | 2016-02-16 22:17:54 +0100 |
| commit | 5d561380f73f2b1bcb663191e363a752cc097dcc (patch) | |
| tree | 714fa4e0bd9b8452809e883bd9d1f29c04f21f1d /drive | |
| parent | a44ec784400bddfd489f86d77e72eb5ee06600fd (diff) | |
| download | gdrive-5d561380f73f2b1bcb663191e363a752cc097dcc.tar.bz2 | |
Add delete option for upload and downloads
Diffstat (limited to 'drive')
| -rw-r--r-- | drive/delete.go | 8 | ||||
| -rw-r--r-- | drive/download.go | 12 | ||||
| -rw-r--r-- | drive/upload.go | 10 |
3 files changed, 30 insertions, 0 deletions
diff --git a/drive/delete.go b/drive/delete.go index d2469e1..bacd4a3 100644 --- a/drive/delete.go +++ b/drive/delete.go @@ -29,3 +29,11 @@ func (self *Drive) Delete(args DeleteArgs) error { fmt.Fprintf(args.Out, "Deleted '%s'\n", f.Name) return nil } + +func (self *Drive) deleteFile(fileId string) error { + err := self.service.Files.Delete(fileId).Do() + if err != nil { + return fmt.Errorf("Failed to delete file: %s", err) + } + return nil +} diff --git a/drive/download.go b/drive/download.go index 3ed73df..7d3dc8b 100644 --- a/drive/download.go +++ b/drive/download.go @@ -17,6 +17,7 @@ type DownloadArgs struct { Path string Force bool Recursive bool + Delete bool Stdout bool } @@ -43,6 +44,17 @@ func (self *Drive) Download(args DownloadArgs) error { if !args.Stdout { fmt.Fprintf(args.Out, "Downloaded %s at %s/s, total %s\n", f.Id, formatSize(rate, false), formatSize(bytes, false)) } + + if args.Delete { + err = self.deleteFile(args.Id) + if err != nil { + return fmt.Errorf("Failed to delete file: %s", err) + } + + if !args.Stdout { + fmt.Fprintf(args.Out, "Removed %s\n", args.Id) + } + } return err } diff --git a/drive/upload.go b/drive/upload.go index 898e3cd..095c284 100644 --- a/drive/upload.go +++ b/drive/upload.go @@ -20,6 +20,7 @@ type UploadArgs struct { Mime string Recursive bool Share bool + Delete bool ChunkSize int64 } @@ -52,6 +53,15 @@ func (self *Drive) Upload(args UploadArgs) error { fmt.Fprintf(args.Out, "File is readable by anyone at %s\n", f.WebContentLink) } + + if args.Delete { + err = os.Remove(args.Path) + if err != nil { + return fmt.Errorf("Failed to delete file: %s", err) + } + fmt.Fprintf(args.Out, "Removed %s\n", args.Path) + } + return nil } |
