[VOL-5486] Fix deprecated versions
Change-Id: If0b888d6c2f33b2f415c8b03b08dc994bb3df3f4
Signed-off-by: Abhay Kumar <abhay.kumar@radisys.com>
diff --git a/vendor/github.com/cheggaaa/pb/v3/util.go b/vendor/github.com/cheggaaa/pb/v3/util.go
new file mode 100644
index 0000000..a392605
--- /dev/null
+++ b/vendor/github.com/cheggaaa/pb/v3/util.go
@@ -0,0 +1,116 @@
+package pb
+
+import (
+ "bytes"
+ "fmt"
+ "github.com/mattn/go-runewidth"
+ "math"
+ "regexp"
+ //"unicode/utf8"
+)
+
+const (
+ _KiB = 1024
+ _MiB = 1048576
+ _GiB = 1073741824
+ _TiB = 1099511627776
+
+ _kB = 1e3
+ _MB = 1e6
+ _GB = 1e9
+ _TB = 1e12
+)
+
+var ctrlFinder = regexp.MustCompile("\x1b\x5b[0-9;]+\x6d")
+
+func CellCount(s string) int {
+ n := runewidth.StringWidth(s)
+ for _, sm := range ctrlFinder.FindAllString(s, -1) {
+ n -= runewidth.StringWidth(sm)
+ }
+ return n
+}
+
+func StripString(s string, w int) string {
+ l := CellCount(s)
+ if l <= w {
+ return s
+ }
+ var buf = bytes.NewBuffer(make([]byte, 0, len(s)))
+ StripStringToBuffer(s, w, buf)
+ return buf.String()
+}
+
+func StripStringToBuffer(s string, w int, buf *bytes.Buffer) {
+ var seqs = ctrlFinder.FindAllStringIndex(s, -1)
+ var maxWidthReached bool
+mainloop:
+ for i, r := range s {
+ for _, seq := range seqs {
+ if i >= seq[0] && i < seq[1] {
+ buf.WriteRune(r)
+ continue mainloop
+ }
+ }
+ if rw := CellCount(string(r)); rw <= w && !maxWidthReached {
+ w -= rw
+ buf.WriteRune(r)
+ } else {
+ maxWidthReached = true
+ }
+ }
+ for w > 0 {
+ buf.WriteByte(' ')
+ w--
+ }
+ return
+}
+
+func round(val float64) (newVal float64) {
+ roundOn := 0.5
+ places := 0
+ var round float64
+ pow := math.Pow(10, float64(places))
+ digit := pow * val
+ _, div := math.Modf(digit)
+ if div >= roundOn {
+ round = math.Ceil(digit)
+ } else {
+ round = math.Floor(digit)
+ }
+ newVal = round / pow
+ return
+}
+
+// Convert bytes to human readable string. Like a 2 MiB, 64.2 KiB, or 2 MB, 64.2 kB
+// if useSIPrefix is set to true
+func formatBytes(i int64, useSIPrefix bool) (result string) {
+ if !useSIPrefix {
+ switch {
+ case i >= _TiB:
+ result = fmt.Sprintf("%.02f TiB", float64(i)/_TiB)
+ case i >= _GiB:
+ result = fmt.Sprintf("%.02f GiB", float64(i)/_GiB)
+ case i >= _MiB:
+ result = fmt.Sprintf("%.02f MiB", float64(i)/_MiB)
+ case i >= _KiB:
+ result = fmt.Sprintf("%.02f KiB", float64(i)/_KiB)
+ default:
+ result = fmt.Sprintf("%d B", i)
+ }
+ } else {
+ switch {
+ case i >= _TB:
+ result = fmt.Sprintf("%.02f TB", float64(i)/_TB)
+ case i >= _GB:
+ result = fmt.Sprintf("%.02f GB", float64(i)/_GB)
+ case i >= _MB:
+ result = fmt.Sprintf("%.02f MB", float64(i)/_MB)
+ case i >= _kB:
+ result = fmt.Sprintf("%.02f kB", float64(i)/_kB)
+ default:
+ result = fmt.Sprintf("%d B", i)
+ }
+ }
+ return
+}