diff options
Diffstat (limited to 'drive')
| -rw-r--r-- | drive/about.go | 7 | ||||
| -rw-r--r-- | drive/delete.go | 12 | ||||
| -rw-r--r-- | drive/download.go | 25 | ||||
| -rw-r--r-- | drive/info.go | 8 | ||||
| -rw-r--r-- | drive/list.go | 8 | ||||
| -rw-r--r-- | drive/mkdir.go | 8 | ||||
| -rw-r--r-- | drive/share.go | 13 | ||||
| -rw-r--r-- | drive/upload.go | 15 | ||||
| -rw-r--r-- | drive/util.go | 16 |
9 files changed, 69 insertions, 43 deletions
diff --git a/drive/about.go b/drive/about.go index 0dbeca2..bea9fda 100644 --- a/drive/about.go +++ b/drive/about.go @@ -12,9 +12,11 @@ type AboutArgs struct { ExportFormats bool } -func (self *Drive) About(args AboutArgs) { +func (self *Drive) About(args AboutArgs) (err error) { about, err := self.service.About.Get().Fields("exportFormats", "importFormats", "maxImportSizes", "maxUploadSize", "storageQuota", "user").Do() - errorF(err, "Failed to get about %s", err) + if err != nil { + return fmt.Errorf("Failed to get about: %s", err) + } if args.ExportFormats { printSupportedFormats(about.ExportFormats) @@ -34,6 +36,7 @@ func (self *Drive) About(args AboutArgs) { fmt.Printf("Free: %s\n", formatSize(quota.Limit - quota.UsageInDrive, args.SizeInBytes)) fmt.Printf("Total: %s\n", formatSize(quota.Limit, args.SizeInBytes)) fmt.Printf("Max upload size: %s\n", formatSize(about.MaxUploadSize, args.SizeInBytes)) + return } func printSupportedFormats(formats map[string][]string) { diff --git a/drive/delete.go b/drive/delete.go index ebf72ed..6e868eb 100644 --- a/drive/delete.go +++ b/drive/delete.go @@ -8,11 +8,17 @@ type DeleteArgs struct { Id string } -func (self *Drive) Delete(args DeleteArgs) { +func (self *Drive) Delete(args DeleteArgs) (err error) { f, err := self.service.Files.Get(args.Id).Fields("name").Do() - errorF(err, "Failed to get file: %s", err) + if err != nil { + return fmt.Errorf("Failed to get file: %s", err) + } err = self.service.Files.Delete(args.Id).Do() - errorF(err, "Failed to delete file") + if err != nil { + return fmt.Errorf("Failed to delete file", err) + } + fmt.Printf("Removed file '%s'\n", f.Name) + return } 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 } diff --git a/drive/info.go b/drive/info.go index f5f5602..ca09d0a 100644 --- a/drive/info.go +++ b/drive/info.go @@ -10,14 +10,18 @@ type FileInfoArgs struct { SizeInBytes bool } -func (self *Drive) Info(args FileInfoArgs) { +func (self *Drive) Info(args FileInfoArgs) (err error) { f, err := self.service.Files.Get(args.Id).Fields("id", "name", "size", "createdTime", "modifiedTime", "md5Checksum", "mimeType", "parents", "shared", "description").Do() - errorF(err, "Failed to get file: %s", err) + if err != nil { + return fmt.Errorf("Failed to get file: %s", err) + } PrintFileInfo(PrintFileInfoArgs{ File: f, SizeInBytes: args.SizeInBytes, }) + + return } type PrintFileInfoArgs struct { diff --git a/drive/list.go b/drive/list.go index c542785..b2e3662 100644 --- a/drive/list.go +++ b/drive/list.go @@ -15,9 +15,11 @@ type ListFilesArgs struct { SizeInBytes bool } -func (self *Drive) List(args ListFilesArgs) { +func (self *Drive) List(args ListFilesArgs) (err error) { fileList, err := self.service.Files.List().PageSize(args.MaxFiles).Q(args.Query).Fields("nextPageToken", "files(id,name,size,createdTime)").Do() - errorF(err, "Failed listing files: %s\n", err) + if err != nil { + return fmt.Errorf("Failed listing files: %s", err) + } PrintFileList(PrintFileListArgs{ Files: fileList.Files, @@ -25,6 +27,8 @@ func (self *Drive) List(args ListFilesArgs) { SkipHeader: args.SkipHeader, SizeInBytes: args.SizeInBytes, }) + + return } type PrintFileListArgs struct { diff --git a/drive/mkdir.go b/drive/mkdir.go index 8295649..4080474 100644 --- a/drive/mkdir.go +++ b/drive/mkdir.go @@ -2,6 +2,7 @@ package drive import ( "google.golang.org/api/drive/v3" + "fmt" ) const DirectoryMimeType = "application/vnd.google-apps.folder" @@ -12,7 +13,7 @@ type MkdirArgs struct { Share bool } -func (self *Drive) Mkdir(args MkdirArgs) { +func (self *Drive) Mkdir(args MkdirArgs) (err error) { dstFile := &drive.File{Name: args.Name, MimeType: DirectoryMimeType} // Set parent folder if provided @@ -22,11 +23,14 @@ func (self *Drive) Mkdir(args MkdirArgs) { // Create folder f, err := self.service.Files.Create(dstFile).Do() - errorF(err, "Failed to create folder: %s", err) + if err != nil { + return fmt.Errorf("Failed to create folder: %s", err) + } PrintFileInfo(PrintFileInfoArgs{File: f}) //if args.Share { // self.Share(TODO) //} + return } diff --git a/drive/share.go b/drive/share.go index 7e7036d..37c1bf8 100644 --- a/drive/share.go +++ b/drive/share.go @@ -14,10 +14,12 @@ type ShareArgs struct { Revoke bool } -func (self *Drive) Share(args ShareArgs) { +func (self *Drive) Share(args ShareArgs) (err error) { if args.Revoke { - err := self.deletePermissions(args) - errorF(err, "Failed delete permissions: %s", err) + err = self.deletePermissions(args) + if err != nil { + return fmt.Errorf("Failed delete permissions: %s", err) + } } permission := &drive.Permission{ @@ -28,9 +30,12 @@ func (self *Drive) Share(args ShareArgs) { } p, err := self.service.Permissions.Create(args.FileId, permission).Do() - errorF(err, "Failed share file: %s", err) + if err != nil { + return fmt.Errorf("Failed share file: %s", err) + } fmt.Println(p) + return } func (self *Drive) deletePermissions(args ShareArgs) error { diff --git a/drive/upload.go b/drive/upload.go index ed373ef..16ae940 100644 --- a/drive/upload.go +++ b/drive/upload.go @@ -19,16 +19,20 @@ type UploadFileArgs struct { Share bool } -func (self *Drive) Upload(args UploadFileArgs) { +func (self *Drive) Upload(args UploadFileArgs) (err error) { //if args.Stdin { // self.uploadStdin() //} srcFile, err := os.Open(args.Path) - errorF(err, "Failed to open file: %s", err) + if err != nil { + return fmt.Errorf("Failed to open file: %s", err) + } srcFileInfo, err := srcFile.Stat() - errorF(err, "Failed to read file metadata: %s", err) + if err != nil { + return fmt.Errorf("Failed to read file metadata: %s", err) + } // Instantiate empty drive file dstFile := &drive.File{} @@ -53,10 +57,13 @@ func (self *Drive) Upload(args UploadFileArgs) { } f, err := self.service.Files.Create(dstFile).ResumableMedia(context.Background(), srcFile, srcFileInfo.Size(), dstFile.MimeType).Do() - errorF(err, "Failed to upload file: %s", err) + if err != nil { + return fmt.Errorf("Failed to upload file: %s", err) + } fmt.Printf("Uploaded '%s' at %s, total %d\n", f.Name, "x/s", f.Size) //if args.Share { // self.Share(TODO) //} + return } diff --git a/drive/util.go b/drive/util.go index bc2d5c3..7ad0945 100644 --- a/drive/util.go +++ b/drive/util.go @@ -103,22 +103,6 @@ func truncateString(str string, maxRunes int) string { return truncated } -func errorF(err error, format string, a ...interface{}) { - if err == nil { - return - } - - fmt.Fprintf(os.Stderr, format, a...) - fmt.Println("") - os.Exit(1) -} - -func exitF(format string, a ...interface{}) { - fmt.Fprintf(os.Stderr, format, a...) - fmt.Println("") - os.Exit(1) -} - func fileExists(path string) bool { _, err := os.Stat(path) if err == nil { |
