From f666e816c8adeadfebd5ea5f044cb4796202bcc3 Mon Sep 17 00:00:00 2001 From: feschroe Date: Sun, 6 Apr 2014 12:14:09 +0200 Subject: Added convert parameter Convert file to Google Docs format on-the-fly while uploading --- cli/cli.go | 9 +++++++-- drive.go | 5 +++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/cli/cli.go b/cli/cli.go index 75ec4e7..4e347fb 100644 --- a/cli/cli.go +++ b/cli/cli.go @@ -158,7 +158,8 @@ func Folder(d *gdrive.Drive, title string, parentId string, share bool) error { } // Upload file to drive -func Upload(d *gdrive.Drive, input io.ReadCloser, title string, parentId string, share bool, mimeType string) error { +func Upload(d *gdrive.Drive, input io.ReadCloser, title string, parentId string, share bool, mimeType string, convert bool) error { + // Use filename or 'untitled' as title if no title is specified if title == "" { if f, ok := input.(*os.File); ok && input != os.Stdin { @@ -181,7 +182,11 @@ func Upload(d *gdrive.Drive, input io.ReadCloser, title string, parentId string, } getRate := util.MeasureTransferRate() - info, err := d.Files.Insert(f).Media(input).Do() + if convert { + fmt.Printf("Converting to Google Docs format enabled\n") + } + + info, err := d.Files.Insert(f).Convert(convert).Media(input).Do() if err != nil { return fmt.Errorf("An error occurred uploading the document: %v\n", err) } diff --git a/drive.go b/drive.go index bad5ff4..a04056d 100644 --- a/drive.go +++ b/drive.go @@ -46,6 +46,7 @@ type Options struct { ParentId string `goptions:"-p, --parent, description='Parent Id of the file'"` Share bool `goptions:"--share, description='Share uploaded file'"` MimeType string `goptions:"--mimetype, description='The MIME type (default will try to figure it out)'"` + Convert bool `goptions:"--convert, description='File will be converted to Google Docs format'"` } `goptions:"upload"` Download struct { @@ -104,9 +105,9 @@ func main() { case "upload": args := opts.Upload if args.Stdin { - err = cli.Upload(drive, os.Stdin, args.Title, args.ParentId, args.Share, args.MimeType) + err = cli.Upload(drive, os.Stdin, args.Title, args.ParentId, args.Share, args.MimeType, args.Convert) } else { - err = cli.Upload(drive, args.File, args.Title, args.ParentId, args.Share, args.MimeType) + err = cli.Upload(drive, args.File, args.Title, args.ParentId, args.Share, args.MimeType, args.Convert) } case "download": -- cgit v1.2.3