From 46058cfed92ae73f69fc2b822e1b6a402298f299 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20F=20Bj=C3=B6rklund?= Date: Sat, 15 Jul 2023 09:40:16 +0200 Subject: [PATCH] refactor: move progressbar to a function MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Anders F Björklund --- pkg/machine/pull.go | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/pkg/machine/pull.go b/pkg/machine/pull.go index c3d70cafbe..c48be52e8c 100644 --- a/pkg/machine/pull.go +++ b/pkg/machine/pull.go @@ -136,6 +136,25 @@ func DownloadImage(d DistributionDownload) error { return Decompress(d.Get().LocalPath, d.Get().LocalUncompressedFile) } +func progressBar(prefix string, size int64, onComplete string) (*mpb.Progress, *mpb.Bar) { + p := mpb.New( + mpb.WithWidth(80), // Do not go below 80, see bug #17718 + mpb.WithRefreshRate(180*time.Millisecond), + ) + + bar := p.AddBar(size, + mpb.BarFillerClearOnComplete(), + mpb.PrependDecorators( + decor.OnComplete(decor.Name(prefix), onComplete), + ), + mpb.AppendDecorators( + decor.OnComplete(decor.CountersKibiByte("%.1f / %.1f"), ""), + ), + ) + + return p, bar +} + // DownloadVMImage downloads a VM image from url to given path // with download status func DownloadVMImage(downloadURL *url2.URL, imageName string, localImagePath string) error { @@ -166,20 +185,7 @@ func DownloadVMImage(downloadURL *url2.URL, imageName string, localImagePath str prefix := "Downloading VM image: " + imageName onComplete := prefix + ": done" - p := mpb.New( - mpb.WithWidth(80), // Do not go below 80, see bug #17718 - mpb.WithRefreshRate(180*time.Millisecond), - ) - - bar := p.AddBar(size, - mpb.BarFillerClearOnComplete(), - mpb.PrependDecorators( - decor.OnComplete(decor.Name(prefix), onComplete), - ), - mpb.AppendDecorators( - decor.OnComplete(decor.CountersKibiByte("%.1f / %.1f"), ""), - ), - ) + p, bar := progressBar(prefix, size, onComplete) proxyReader := bar.ProxyReader(resp.Body) defer func() {