diff --git a/internal/odm/node.go b/internal/odm/node.go index 83b7ac4..596a275 100644 --- a/internal/odm/node.go +++ b/internal/odm/node.go @@ -264,7 +264,12 @@ func (n Node) TaskDownload(uuid string, asset string, outputFile string) error { bar.Prefix("[" + asset + "]") } - writer := io.MultiWriter(out, bar) + var writer io.Writer + if bar != nil { + writer = io.MultiWriter(out, bar) + } else { + writer = out + } written, err := io.Copy(writer, resp.Body) if written == 0 { diff --git a/internal/odm/run.go b/internal/odm/run.go index c6bcbb1..d03bb9d 100644 --- a/internal/odm/run.go +++ b/internal/odm/run.go @@ -18,7 +18,6 @@ package odm import ( "encoding/json" "errors" - "fmt" "io" "io/ioutil" "mime/multipart" @@ -141,7 +140,7 @@ func uploadWorker(id int, node Node, uuid string, barPool *pb.Pool, filesToProce } for f := range filesToProcess { - results <- fileUploadResult{f.filename, node.TaskNewUpload(f.filename, uuid, bar), f.retries + 1} + results <- fileUploadResult{f.filename, node.TaskNewUpload(f.filename, uuid, bar), f.retries} } } @@ -194,20 +193,23 @@ func chunkedUpload(node Node, files []string, jsonOptions []byte, parallelUpload if fur.err != nil { if fur.retries < MaxRetries { // Retry - fmt.Println("RETRY: " + fur.filename + " " + string(fur.retries)) filesToProcess <- fileUpload{fur.filename, fur.retries + 1} } else { logger.Error(errors.New("Cannot upload " + fur.filename + ", exceeded max retries (" + string(MaxRetries) + ")")) } } else { filesLeft-- - mainBar.Set(len(files) - filesLeft) + if mainBar != nil { + mainBar.Set(len(files) - filesLeft) + } } } close(filesToProcess) if barPool != nil { barPool.Stop() + } + if mainBar != nil { mainBar.Finish() }