diff options
Diffstat (limited to 'drive/update.go')
| -rw-r--r-- | drive/update.go | 106 | 
1 files changed, 53 insertions, 53 deletions
diff --git a/drive/update.go b/drive/update.go index 5bdd040..156eb2f 100644 --- a/drive/update.go +++ b/drive/update.go @@ -1,75 +1,75 @@  package drive  import ( -    "fmt" -    "mime" -    "time" -    "io" -    "path/filepath" -    "google.golang.org/api/googleapi" -    "google.golang.org/api/drive/v3" +	"fmt" +	"google.golang.org/api/drive/v3" +	"google.golang.org/api/googleapi" +	"io" +	"mime" +	"path/filepath" +	"time"  )  type UpdateArgs struct { -    Out io.Writer -    Progress io.Writer -    Id string -    Path string -    Name string -    Parents []string -    Mime string -    Recursive bool -    ChunkSize int64 +	Out       io.Writer +	Progress  io.Writer +	Id        string +	Path      string +	Name      string +	Parents   []string +	Mime      string +	Recursive bool +	ChunkSize int64  }  func (self *Drive) Update(args UpdateArgs) error { -    srcFile, srcFileInfo, err := openFile(args.Path) -    if err != nil { -        return fmt.Errorf("Failed to open file: %s", err) -    } +	srcFile, srcFileInfo, err := openFile(args.Path) +	if err != nil { +		return fmt.Errorf("Failed to open file: %s", err) +	} -    defer srcFile.Close() +	defer srcFile.Close() -    // Instantiate empty drive file -    dstFile := &drive.File{} +	// Instantiate empty drive file +	dstFile := &drive.File{} -    // Use provided file name or use filename -    if args.Name == "" { -        dstFile.Name = filepath.Base(srcFileInfo.Name()) -    } else { -        dstFile.Name = args.Name -    } +	// Use provided file name or use filename +	if args.Name == "" { +		dstFile.Name = filepath.Base(srcFileInfo.Name()) +	} else { +		dstFile.Name = args.Name +	} -    // Set provided mime type or get type based on file extension -    if args.Mime == "" { -        dstFile.MimeType = mime.TypeByExtension(filepath.Ext(dstFile.Name)) -    } else { -        dstFile.MimeType = args.Mime -    } +	// Set provided mime type or get type based on file extension +	if args.Mime == "" { +		dstFile.MimeType = mime.TypeByExtension(filepath.Ext(dstFile.Name)) +	} else { +		dstFile.MimeType = args.Mime +	} -    // Set parent folders -    dstFile.Parents = args.Parents +	// Set parent folders +	dstFile.Parents = args.Parents -    // Chunk size option -    chunkSize := googleapi.ChunkSize(int(args.ChunkSize)) +	// Chunk size option +	chunkSize := googleapi.ChunkSize(int(args.ChunkSize)) -    // Wrap file in progress reader -    progressReader := getProgressReader(srcFile, args.Progress, srcFileInfo.Size()) +	// Wrap file in progress reader +	progressReader := getProgressReader(srcFile, args.Progress, srcFileInfo.Size()) -    // Wrap reader in timeout reader -    reader, ctx := getTimeoutReaderContext(progressReader) +	// Wrap reader in timeout reader +	reader, ctx := getTimeoutReaderContext(progressReader) -    fmt.Fprintf(args.Out, "Uploading %s\n", args.Path) -    started := time.Now() +	fmt.Fprintf(args.Out, "Uploading %s\n", args.Path) +	started := time.Now() -    f, err := self.service.Files.Update(args.Id, dstFile).Fields("id", "name", "size").Context(ctx).Media(reader, chunkSize).Do() -    if err != nil { -        return fmt.Errorf("Failed to upload file: %s", err) -    } +	f, err := self.service.Files.Update(args.Id, dstFile).Fields("id", "name", "size").Context(ctx).Media(reader, chunkSize).Do() +	if err != nil { +		return fmt.Errorf("Failed to upload file: %s", err) +	} -    // Calculate average upload rate -    rate := calcRate(f.Size, started, time.Now()) +	// Calculate average upload rate +	rate := calcRate(f.Size, started, time.Now()) -    fmt.Fprintf(args.Out, "Updated %s at %s/s, total %s\n", f.Id, formatSize(rate, false), formatSize(f.Size, false)) -    return nil +	fmt.Fprintf(args.Out, "Updated %s at %s/s, total %s\n", f.Id, formatSize(rate, false), formatSize(f.Size, false)) +	return nil  }  | 
