diff --git a/cmd/camput/camput.go b/cmd/camput/camput.go index 66c793dad..2ca81ac92 100644 --- a/cmd/camput/camput.go +++ b/cmd/camput/camput.go @@ -96,6 +96,8 @@ type HaveCache interface { type Uploader struct { *client.Client + rollSplits bool // rolling checksum file splitting + // for debugging; normally nil, but overrides Client if set // TODO(bradfitz): clean this up? embed a StatReceiver instead // of a Client? @@ -175,7 +177,7 @@ func (up *Uploader) releaseUploadToken() { <-up.filecapc } -func (up *Uploader) UploadFile(filename string, rollSplits bool) (respr *client.PutResult, outerr error) { +func (up *Uploader) UploadFile(filename string) (respr *client.PutResult, outerr error) { up.getUploadToken() defer up.releaseUploadToken() @@ -231,7 +233,7 @@ func (up *Uploader) UploadFile(filename string, rollSplits bool) (respr *client. } schemaWriteFileMap := schema.WriteFileMap - if rollSplits { + if up.rollSplits { schemaWriteFileMap = schema.WriteFileMapRolling } blobref, err := schemaWriteFileMap(statReceiver, m, io.LimitReader(file, fi.Size())) @@ -284,7 +286,7 @@ func (up *Uploader) UploadFile(filename string, rollSplits bool) (respr *client. for _, name := range dirNames { rate <- true go func(dirEntName string) { - pr, err := up.UploadFile(filename+"/"+dirEntName, rollSplits) + pr, err := up.UploadFile(filename+"/"+dirEntName) if pr == nil && err == nil { log.Fatalf("nil/nil from up.UploadFile on %q", filename+"/"+dirEntName) } diff --git a/cmd/camput/files.go b/cmd/camput/files.go index 02646872d..36c1ed8bd 100644 --- a/cmd/camput/files.go +++ b/cmd/camput/files.go @@ -130,8 +130,11 @@ func (c *fileCmd) RunCommand(up *Uploader, args []string) error { if c.diskUsage { return fmt.Errorf("TODO: implement diskUsage mode") } + if c.rollSplits { + up.rollSplits = true + } for _, filename := range args { - lastPut, err = up.UploadFile(filename, c.rollSplits) + lastPut, err = up.UploadFile(filename) if handleResult("file", lastPut, err) != nil { return err }