Skip to content

Commit 39e59ca

Browse files
committed
spinner2
1 parent 82a63b6 commit 39e59ca

1 file changed

Lines changed: 39 additions & 27 deletions

File tree

pkg/airgapped/plugin_bundle_upload.go

Lines changed: 39 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -59,40 +59,18 @@ func (o *UploadPluginBundleOptions) UploadPluginBundle() error {
5959

6060
totalImages := len(manifest.ImagesToCopy)
6161
imagesUploaded := 0
62-
uploadingMsg := "[%d/%d] uploading image %d"
63-
uploadedMsg := "[%d/%d] uploaded image %d"
64-
errorMsg := "error while uploading image %q"
6562
// Iterate through all the images and publish them to the remote repository
63+
var repoImagePath string
6664
for _, ic := range manifest.ImagesToCopy {
6765
imageTar := filepath.Join(pluginBundleDir, ic.SourceTarFilePath)
68-
repoImagePath, err := utils.JoinURL(o.DestinationRepo, ic.RelativeImagePath)
66+
repoImagePath, err = utils.JoinURL(o.DestinationRepo, ic.RelativeImagePath)
6967
if err != nil {
7068
return errors.Wrap(err, "error while constructing the repo image path")
7169
}
72-
errorMsg = fmt.Sprintf(errorMsg, repoImagePath)
73-
uploadingMsg = fmt.Sprintf(uploadingMsg, totalImages, imagesUploaded, imagesUploaded)
74-
uploadedMsg = fmt.Sprintf(uploadedMsg, totalImages, imagesUploaded, imagesUploaded)
75-
var spinner component.OutputWriterSpinner
76-
if !component.IsTTYEnabled() {
77-
// Initialize the spinner
78-
spinner = component.NewOutputWriterSpinner(component.WithOutputStream(os.Stderr),
79-
component.WithSpinnerText(uploadingMsg),
80-
component.WithSpinnerStarted())
81-
spinner.SetFinalText(errorMsg, log.LogTypeERROR)
82-
defer spinner.StopSpinner()
83-
} else {
84-
log.Infof(uploadingMsg, totalImages, imagesUploaded, imagesUploaded)
85-
}
86-
err = o.ImageProcessor.CopyImageFromTar(imageTar, repoImagePath)
87-
if err != nil {
88-
return errors.Wrap(err, errorMsg)
89-
}
90-
imagesUploaded = imagesUploaded+1
91-
if spinner != nil {
92-
spinner.SetFinalText(uploadedMsg, log.LogTypeINFO)
93-
} else {
94-
log.Infof(uploadedMsg, totalImages, imagesUploaded, repoImagePath)
70+
if err = o.uploadImage(imageTar, repoImagePath, totalImages, imagesUploaded); err != nil {
71+
return err
9572
}
73+
imagesUploaded++
9674
}
9775
log.Infof("---------------------------")
9876
log.Infof("---------------------------")
@@ -126,6 +104,40 @@ func (o *UploadPluginBundleOptions) UploadPluginBundle() error {
126104
return nil
127105
}
128106

107+
func (o *UploadPluginBundleOptions) uploadImage(imageTar, repoImagePath string, totalImages, imagesUploaded int) error {
108+
uploadingMsg := fmt.Sprintf("[%d/%d] uploading image %q", totalImages, imagesUploaded, repoImagePath)
109+
errorMsg := fmt.Sprintf("[%d/%d] error while uploading image %q", totalImages, imagesUploaded, repoImagePath)
110+
uploadedMsg := "[%d/%d] uploaded image %q"
111+
112+
var spinner component.OutputWriterSpinner
113+
if component.IsTTYEnabled() {
114+
// Initialize the spinner
115+
spinner = component.NewOutputWriterSpinner(
116+
component.WithOutputStream(os.Stderr),
117+
component.WithSpinnerText(uploadingMsg),
118+
component.WithSpinnerStarted(),
119+
)
120+
spinner.SetFinalText(errorMsg, log.LogTypeERROR)
121+
defer spinner.StopSpinner()
122+
} else {
123+
log.Infof(uploadingMsg, totalImages, imagesUploaded, repoImagePath)
124+
}
125+
126+
if err := o.ImageProcessor.CopyImageFromTar(imageTar, repoImagePath); err != nil {
127+
return errors.Wrapf(err, errorMsg, repoImagePath)
128+
}
129+
130+
uploadedMsg = fmt.Sprintf(uploadedMsg, totalImages, imagesUploaded+1, repoImagePath)
131+
if spinner != nil {
132+
spinner.SetFinalText(uploadedMsg, log.LogTypeINFO)
133+
spinner.StopSpinner()
134+
} else {
135+
log.Infof(uploadedMsg, totalImages, imagesUploaded, repoImagePath)
136+
}
137+
138+
return nil
139+
}
140+
129141
// mergePluginInventoryMetadata merges the downloaded plugin inventory metadata with
130142
// existing plugin inventory metadata available on the remote repository
131143
func (o *UploadPluginBundleOptions) mergePluginInventoryMetadata(pluginInventoryMetadataImageWithTag, bundledPluginInventoryMetadataDBFilePath, tempDir string) error {

0 commit comments

Comments
 (0)