]> Cypherpunks.ru repositories - nncp.git/blobdiff - src/progress.go
Streamed NNCPE format
[nncp.git] / src / progress.go
index 0c2f0ee2c99f7cd874edd56fbded6e815bbdf8d2..b11a3ac3f0b1bbdc1c4705250bf9db3889529572 100644 (file)
@@ -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() {
@@ -114,6 +114,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 +144,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 +158,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 +168,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)
        }