Skip to content
This repository was archived by the owner on Mar 27, 2024. It is now read-only.

Commit 7024d3b

Browse files
committed
move error combining logic into helper function
1 parent 6a7a550 commit 7024d3b

File tree

1 file changed

+20
-11
lines changed

1 file changed

+20
-11
lines changed

cmd/diff.go

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,24 @@ func processImage(imageName string, imageMap map[string]*pkgutil.Image, wg *sync
7979
imageMap[imageName] = &image
8080
}
8181

82+
// collects errors from a channel and combines them
83+
// assumes channel has already been closed
84+
func readErrorsFromChannel(c chan error) error {
85+
errs := []string{}
86+
for {
87+
err, ok := <-c
88+
if !ok {
89+
break
90+
}
91+
errs = append(errs, err.Error())
92+
}
93+
94+
if len(errs) > 0 {
95+
return errors.New(strings.Join(errs, "\n"))
96+
}
97+
return nil
98+
}
99+
82100
func diffImages(image1Arg, image2Arg string, diffArgs []string) error {
83101
diffTypes, err := differs.GetAnalyzers(diffArgs)
84102
if err != nil {
@@ -104,17 +122,8 @@ func diffImages(image1Arg, image2Arg string, diffArgs []string) error {
104122
defer pkgutil.CleanupImage(*imageMap[image2Arg])
105123
}
106124

107-
errs := []string{}
108-
for {
109-
err, ok := <-errChan
110-
if !ok {
111-
break
112-
}
113-
errs = append(errs, err.Error())
114-
}
115-
116-
if len(errs) > 0 {
117-
return errors.New(strings.Join(errs, "\n"))
125+
if err := readErrorsFromChannel(errChan); err != nil {
126+
return err
118127
}
119128

120129
logrus.Info("computing diffs")

0 commit comments

Comments
 (0)