diff --git a/cmd/uplink/cmd/cp.go b/cmd/uplink/cmd/cp.go index f20207c50..b722118c7 100644 --- a/cmd/uplink/cmd/cp.go +++ b/cmd/uplink/cmd/cp.go @@ -12,7 +12,7 @@ import ( "strings" "time" - progressbar "github.com/cheggaaa/pb" + progressbar "github.com/cheggaaa/pb/v3" "github.com/spf13/cobra" "github.com/zeebo/errs" @@ -91,10 +91,9 @@ func upload(ctx context.Context, src fpath.FPath, dst fpath.FPath, showProgress reader := io.Reader(file) var bar *progressbar.ProgressBar if showProgress { - bar = progressbar.New64(fileInfo.Size()).SetUnits(progressbar.U_BYTES).SetWidth(80) - bar.ShowSpeed = true - bar.Start() + bar = progressbar.New64(fileInfo.Size()) reader = bar.NewProxyReader(reader) + bar.Start() } opts := &libuplink.UploadOptions{} @@ -106,13 +105,13 @@ func upload(ctx context.Context, src fpath.FPath, dst fpath.FPath, showProgress opts.Volatile.RedundancyScheme = cfg.GetRedundancyScheme() opts.Volatile.EncryptionParameters = cfg.GetEncryptionParameters() - if err := bucket.UploadObject(ctx, dst.Path(), reader, opts); err != nil { - return err - } - + err = bucket.UploadObject(ctx, dst.Path(), reader, opts) if bar != nil { bar.Finish() } + if err != nil { + return err + } fmt.Printf("Created %s\n", dst.String()) @@ -149,10 +148,9 @@ func download(ctx context.Context, src fpath.FPath, dst fpath.FPath, showProgres var bar *progressbar.ProgressBar var reader io.ReadCloser if showProgress { - bar = progressbar.New64(object.Meta.Size).SetUnits(progressbar.U_BYTES).SetWidth(80) - bar.ShowSpeed = true - bar.Start() + bar = progressbar.New64(object.Meta.Size) reader = bar.NewProxyReader(rc) + bar.Start() } else { reader = rc } @@ -177,13 +175,12 @@ func download(ctx context.Context, src fpath.FPath, dst fpath.FPath, showProgres } _, err = io.Copy(file, reader) - if err != nil { - return err - } - if bar != nil { bar.Finish() } + if err != nil { + return err + } if dst.Base() != "-" { fmt.Printf("Downloaded %s to %s\n", src.String(), dst.String()) @@ -222,9 +219,9 @@ func copyObject(ctx context.Context, src fpath.FPath, dst fpath.FPath) (err erro var bar *progressbar.ProgressBar var reader io.Reader if *progress { - bar = progressbar.New64(object.Meta.Size).SetUnits(progressbar.U_BYTES) + bar = progressbar.New64(object.Meta.Size) + reader = bar.NewProxyReader(reader) bar.Start() - reader = bar.NewProxyReader(rc) } else { reader = rc } @@ -241,14 +238,14 @@ func copyObject(ctx context.Context, src fpath.FPath, dst fpath.FPath) (err erro } opts.Volatile.RedundancyScheme = cfg.GetRedundancyScheme() opts.Volatile.EncryptionParameters = cfg.GetEncryptionParameters() - err = bucket.UploadObject(ctx, dst.Path(), reader, opts) - if err != nil { - return err - } + err = bucket.UploadObject(ctx, dst.Path(), reader, opts) if bar != nil { bar.Finish() } + if err != nil { + return err + } fmt.Printf("%s copied to %s\n", src.String(), dst.String()) diff --git a/go.mod b/go.mod index 5a7fe5c39..381a68e64 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,6 @@ require ( github.com/garyburd/redigo v1.0.1-0.20170216214944-0d253a66e6e1 // indirect github.com/graphql-go/graphql v0.7.9-0.20190403165646-199d20bbfed7 github.com/inconshreveable/mousetrap v1.0.0 // indirect - github.com/mattn/go-colorable v0.0.9 // indirect github.com/minio/minio v0.0.0-20180508161510-54cd29b51c38 github.com/segmentio/go-prompt v1.2.1-0.20161017233205-f0d19b6901ad @@ -27,7 +26,8 @@ require ( github.com/alicebob/miniredis v0.0.0-20180911162847-3657542c8629 github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da // indirect github.com/boltdb/bolt v1.3.1 - github.com/cheggaaa/pb v1.0.5-0.20160713104425-73ae1d68fe0b + github.com/cheggaaa/pb v1.0.5-0.20160713104425-73ae1d68fe0b // indirect + github.com/cheggaaa/pb/v3 v3.0.1 github.com/djherbis/atime v1.0.0 // indirect github.com/dustin/go-humanize v1.0.0 // indirect github.com/eapache/go-resiliency v1.1.0 // indirect @@ -63,8 +63,7 @@ require ( github.com/lib/pq v1.0.0 github.com/loov/hrtime v0.0.0-20181214195526-37a208e8344e github.com/loov/plot v0.0.0-20180510142208-e59891ae1271 - github.com/mattn/go-isatty v0.0.4 // indirect - github.com/mattn/go-runewidth v0.0.3 // indirect + github.com/mattn/go-isatty v0.0.9 // indirect github.com/mattn/go-sqlite3 v1.10.0 github.com/minio/cli v1.3.0 github.com/minio/dsync v0.0.0-20180124070302-439a0961af70 // indirect @@ -115,7 +114,7 @@ require ( golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8 golang.org/x/net v0.0.0-20190724013045-ca1201d0de80 // indirect golang.org/x/sync v0.0.0-20190423024810-112230192c58 - golang.org/x/sys v0.0.0-20190730183949-1393eb018365 + golang.org/x/sys v0.0.0-20190909082730-f460065e899a golang.org/x/text v0.3.2 // indirect golang.org/x/tools v0.0.0-20190614152001-1edc8e83c897 google.golang.org/appengine v1.6.0 // indirect diff --git a/go.sum b/go.sum index 7865fc010..02e0e9f4c 100644 --- a/go.sum +++ b/go.sum @@ -13,6 +13,8 @@ github.com/Shopify/toxiproxy v2.1.4+incompatible h1:TKdv8HiTLgE5wdJuEML90aBgNWso github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/Sirupsen/logrus v1.0.6 h1:HCAGQRk48dRVPA5Y+Yh0qdCSTzPOyU1tBJ7Q9YzotII= github.com/Sirupsen/logrus v1.0.6/go.mod h1:rmk17hk6i8ZSAJkSDa7nOxamrG+SP4P0mm+DAvExv4U= +github.com/VividCortex/ewma v1.1.1 h1:MnEK4VOv6n0RSY4vtRe3h11qjxL3+t0B8yOL8iMXdcM= +github.com/VividCortex/ewma v1.1.1/go.mod h1:2Tkkvm3sRDVXaiyucHiACn4cqf7DpdyLvmxzcbUokwA= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alicebob/gopher-json v0.0.0-20180125190556-5a6b3ba71ee6 h1:45bxf7AZMwWcqkLzDAQugVEwedisr5nRJ1r+7LYnv0U= @@ -37,6 +39,8 @@ github.com/btcsuite/btcutil v0.0.0-20180706230648-ab6388e0c60a/go.mod h1:+5NJ2+q github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cheggaaa/pb v1.0.5-0.20160713104425-73ae1d68fe0b h1:CMRCnhHx4xVxJy+wPsS67xmi9RHGNctLMoVn9Q1Kit8= github.com/cheggaaa/pb v1.0.5-0.20160713104425-73ae1d68fe0b/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= +github.com/cheggaaa/pb/v3 v3.0.1 h1:m0BngUk2LuSRYdx4fujDKNRXNDpbNCfptPfVT2m6OJY= +github.com/cheggaaa/pb/v3 v3.0.1/go.mod h1:SqqeMF/pMOIu3xgGoxtPYhMNQP258xE4x/XRTYua+KU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudfoundry/gosigar v1.1.0 h1:V/dVCzhKOdIU3WRB5inQU20s4yIgL9Dxx/Mhi0SF8eM= github.com/cloudfoundry/gosigar v1.1.0/go.mod h1:3qLfc2GlfmwOx2+ZDaRGH3Y9fwQ0sQeaAleo2GV5pH0= @@ -228,12 +232,14 @@ github.com/magiconair/properties v1.8.0 h1:LLgXmsheXeRoUOBOjtwPQCWIYqM/LU1ayDtDe github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20180730094502-03f2033d19d5 h1:0x4qcEHDpruK6ML/m/YSlFUUu0UpRD3I2PHsNCuGnyA= github.com/mailru/easyjson v0.0.0-20180730094502-03f2033d19d5/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mattn/go-colorable v0.0.9 h1:UVL0vNpWh04HeJXV0KLcaT7r06gOH2l4OW6ddYRUIY4= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-isatty v0.0.4 h1:bnP0vzxcAdeI1zdubAl5PjU6zsERjGZb7raWodagDYs= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-runewidth v0.0.3 h1:a+kO+98RDGEfo6asOGMmpodZq4FNtnGP54yps8BzLR4= -github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-colorable v0.1.2 h1:/bC9yWikZXAL9uJdulbSfyVNIR3n3trXl+v8+1sx8mU= +github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-isatty v0.0.8 h1:HLtExJ+uU2HOZ+wI0Tt5DtUDrx8yhUqDcp7fYERX4CE= +github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.9 h1:d5US/mDsogSGW37IV293h//ZFaeajb69h+EHFsv2xGg= +github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= +github.com/mattn/go-runewidth v0.0.4 h1:2BvfKmzob6Bmd4YsL0zygOqfdFnK7GR4QL06Do4/p7Y= +github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-sqlite3 v1.9.0 h1:pDRiWfl+++eC2FEFRy6jXmQlvp4Yh3z1MJKg4UeYM/4= github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-sqlite3 v1.10.0 h1:jbhqpg7tQe4SupckyijYiy0mJJ/pRyHvXf7JdWK860o= @@ -453,9 +459,11 @@ golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190730183949-1393eb018365 h1:SaXEMXhWzMJThc05vu6uh61Q245r4KaWMrsTedk0FDc= -golang.org/x/sys v0.0.0-20190730183949-1393eb018365/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190909082730-f460065e899a h1:mIzbOulag9/gXacgxKlFVwpCOWSfBT3/pDyyCwGA9as= +golang.org/x/sys v0.0.0-20190909082730-f460065e899a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=