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

Commit 6a7a550

Browse files
committed
improve error handling logic when retrieving images
1 parent ee51ff8 commit 6a7a550

File tree

1 file changed

+11
-24
lines changed

1 file changed

+11
-24
lines changed

cmd/diff.go

Lines changed: 11 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -67,18 +67,14 @@ func checkFilenameFlag(_ []string) error {
6767
return nil
6868
}
6969
}
70-
return errors.New("Please include --types=file with the --filename flag")
70+
return errors.New("please include --types=file with the --filename flag")
7171
}
7272

7373
func processImage(imageName string, imageMap map[string]*pkgutil.Image, wg *sync.WaitGroup, errChan chan<- error) {
7474
defer wg.Done()
7575
image, err := getImageForName(imageName)
76-
if image.Image == nil {
77-
errChan <- fmt.Errorf("error retrieving image %s: %s", imageName, err.Error())
78-
return
79-
}
8076
if err != nil {
81-
logrus.Warningf("diff may be inaccurate: %s", err)
77+
errChan <- fmt.Errorf("error retrieving image %s: %s", imageName, err)
8278
}
8379
imageMap[imageName] = &image
8480
}
@@ -103,6 +99,11 @@ func diffImages(image1Arg, image2Arg string, diffArgs []string) error {
10399
wg.Wait()
104100
close(errChan)
105101

102+
if noCache && !save {
103+
defer pkgutil.CleanupImage(*imageMap[image1Arg])
104+
defer pkgutil.CleanupImage(*imageMap[image2Arg])
105+
}
106+
106107
errs := []string{}
107108
for {
108109
err, ok := <-errChan
@@ -116,28 +117,14 @@ func diffImages(image1Arg, image2Arg string, diffArgs []string) error {
116117
return errors.New(strings.Join(errs, "\n"))
117118
}
118119

119-
img1, ok := imageMap[image1Arg]
120-
if !ok {
121-
return fmt.Errorf("cannot find image %s", image1Arg)
122-
}
123-
img2, ok := imageMap[image2Arg]
124-
if !ok {
125-
return fmt.Errorf("cannot find image %s", image2Arg)
126-
}
127-
128-
if noCache && !save {
129-
defer pkgutil.CleanupImage(*imageMap[image1Arg])
130-
defer pkgutil.CleanupImage(*imageMap[image2Arg])
131-
}
132-
133120
logrus.Info("computing diffs")
134121
req := differs.DiffRequest{
135-
Image1: *img1,
136-
Image2: *img2,
122+
Image1: *imageMap[image1Arg],
123+
Image2: *imageMap[image2Arg],
137124
DiffTypes: diffTypes}
138125
diffs, err := req.GetDiff()
139126
if err != nil {
140-
return fmt.Errorf("Could not retrieve diff: %s", err)
127+
return fmt.Errorf("could not retrieve diff: %s", err)
141128
}
142129
outputResults(diffs)
143130

@@ -150,7 +137,7 @@ func diffImages(image1Arg, image2Arg string, diffArgs []string) error {
150137
}
151138

152139
if noCache && save {
153-
logrus.Infof("Images were saved at %s and %s", imageMap[image1Arg].FSPath,
140+
logrus.Infof("images were saved at %s and %s", imageMap[image1Arg].FSPath,
154141
imageMap[image2Arg].FSPath)
155142
}
156143
return nil

0 commit comments

Comments
 (0)