X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=src%2Fprogress.go;h=171f8e95878a4de603ae987784d52fa9e2fded25;hb=HEAD;hp=0c2f0ee2c99f7cd874edd56fbded6e815bbdf8d2;hpb=0fad171c0d79ad583c0faf5427e22d1d62a0a52d;p=nncp.git diff --git a/src/progress.go b/src/progress.go index 0c2f0ee..c170674 100644 --- a/src/progress.go +++ b/src/progress.go @@ -1,6 +1,6 @@ /* NNCP -- Node to Node copy, utilities for store-and-forward data exchange -Copyright (C) 2016-2021 Sergey Matveev +Copyright (C) 2016-2023 Sergey Matveev This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -25,7 +25,7 @@ import ( "time" "github.com/dustin/go-humanize" - "go.cypherpunks.ru/nncp/v7/uilive" + "go.cypherpunks.ru/nncp/v8/uilive" ) func init() { @@ -37,7 +37,6 @@ var progressBarsLock sync.RWMutex type ProgressBar struct { w *uilive.Writer - hash string started time.Time initial int64 full int64 @@ -114,6 +113,18 @@ func CopyProgressed( break } } + if showPrgrs { + for _, le := range les { + if le.K == "FullSize" { + if le.V.(int64) == 0 { + Progress(prgrsPrefix, append( + les, LE{"Size", written}, LE{"FullSize", written}, + )) + } + break + } + } + } return } @@ -132,9 +143,9 @@ func Progress(prefix string, les LEs) { } } progressBarsLock.RLock() - pb, exists := progressBars[pkt] + pb := progressBars[pkt] progressBarsLock.RUnlock() - if !exists { + if pb == nil { progressBarsLock.Lock() pb = ProgressBarNew(size, fullsize) progressBars[pkt] = pb @@ -146,7 +157,7 @@ func Progress(prefix string, les LEs) { } what = prefix + " " + what pb.Render(what, size) - if size >= fullsize { + if fullsize != 0 && size >= fullsize { pb.Kill() progressBarsLock.Lock() delete(progressBars, pkt) @@ -156,8 +167,8 @@ func Progress(prefix string, les LEs) { func ProgressKill(pkt string) { progressBarsLock.Lock() - pb, exists := progressBars[pkt] - if exists { + pb := progressBars[pkt] + if pb != nil { pb.Kill() delete(progressBars, pkt) }