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

Commit afe89a2

Browse files
committed
Removed some duplicated code in analyzeimages and diffimages
1 parent 8be7997 commit afe89a2

File tree

3 files changed

+47
-59
lines changed

3 files changed

+47
-59
lines changed

cmd/analyze.go

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -59,36 +59,36 @@ func analyzeImage(imageArg string, analyzerArgs []string) error {
5959
Source: imageArg,
6060
Client: cli,
6161
}
62-
6362
image, err := ip.GetImage()
63+
64+
if !save {
65+
defer cleanupImage(image)
66+
}
6467
if err != nil {
6568
glog.Error(err.Error())
66-
cleanupImage(image)
6769
return errors.New("Could not perform image analysis")
6870
}
6971
analyzeTypes, err := differs.GetAnalyzers(analyzerArgs)
7072
if err != nil {
7173
glog.Error(err.Error())
72-
cleanupImage(image)
7374
return errors.New("Could not perform image analysis")
7475
}
7576

7677
req := differs.SingleRequest{image, analyzeTypes}
77-
if analyses, err := req.GetAnalysis(); err == nil {
78-
glog.Info("Retrieving analyses")
79-
outputResults(analyses)
80-
if !save {
81-
cleanupImage(image)
82-
} else {
83-
dir, _ := os.Getwd()
84-
glog.Infof("Image was saved at %s as %s", dir, image.FSPath)
85-
}
86-
} else {
78+
analyses, err := req.GetAnalysis()
79+
if err != nil {
8780
glog.Error(err.Error())
88-
cleanupImage(image)
8981
return errors.New("Could not perform image analysis")
9082
}
9183

84+
glog.Info("Retrieving analyses")
85+
outputResults(analyses)
86+
87+
if save {
88+
dir, _ := os.Getwd()
89+
glog.Infof("Image was saved at %s as %s", dir, image.FSPath)
90+
}
91+
9292
return nil
9393
}
9494

cmd/diff.go

Lines changed: 33 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -61,64 +61,52 @@ func diffImages(image1Arg, image2Arg string, diffArgs []string) error {
6161

6262
glog.Infof("Starting diff on images %s and %s, using differs: %s", image1Arg, image2Arg, diffArgs)
6363

64-
var image1, image2 utils.Image
65-
go func() {
66-
defer wg.Done()
67-
ip := utils.ImagePrepper{
68-
Source: image1Arg,
69-
Client: cli,
70-
}
71-
image1, err = ip.GetImage()
72-
if err != nil {
73-
glog.Error(err.Error())
74-
}
75-
}()
76-
77-
go func() {
78-
defer wg.Done()
79-
ip := utils.ImagePrepper{
80-
Source: image2Arg,
81-
Client: cli,
82-
}
83-
image2, err = ip.GetImage()
84-
if err != nil {
85-
glog.Error(err.Error())
86-
}
87-
}()
64+
imageMap := map[string]*utils.Image{
65+
image1Arg: &utils.Image{},
66+
image2Arg: &utils.Image{},
67+
}
68+
for imageArg := range imageMap {
69+
go func(imageName string, imageMap map[string]*utils.Image) {
70+
defer wg.Done()
71+
ip := utils.ImagePrepper{
72+
Source: imageName,
73+
Client: cli,
74+
}
75+
image, err := ip.GetImage()
76+
imageMap[imageName] = &image
77+
if err != nil {
78+
glog.Error(err.Error())
79+
}
80+
}(imageArg, imageMap)
81+
}
8882
wg.Wait()
89-
if err != nil {
90-
cleanupImage(image1)
91-
cleanupImage(image2)
92-
return errors.New("Could not perform image diff")
83+
84+
if !save {
85+
defer cleanupImage(*imageMap[image1Arg])
86+
defer cleanupImage(*imageMap[image2Arg])
9387
}
9488

9589
diffTypes, err := differs.GetAnalyzers(diffArgs)
9690
if err != nil {
9791
glog.Error(err.Error())
98-
cleanupImage(image1)
99-
cleanupImage(image2)
10092
return errors.New("Could not perform image diff")
10193
}
10294

103-
req := differs.DiffRequest{image1, image2, diffTypes}
104-
if diffs, err := req.GetDiff(); err == nil {
105-
glog.Info("Retrieving diffs")
106-
outputResults(diffs)
107-
if !save {
108-
cleanupImage(image1)
109-
cleanupImage(image2)
110-
111-
} else {
112-
dir, _ := os.Getwd()
113-
glog.Infof("Images were saved at %s as %s and %s", dir, image1.FSPath, image2.FSPath)
114-
}
115-
} else {
95+
req := differs.DiffRequest{*imageMap[image1Arg], *imageMap[image2Arg], diffTypes}
96+
diffs, err := req.GetDiff()
97+
if err != nil {
11698
glog.Error(err.Error())
117-
cleanupImage(image1)
118-
cleanupImage(image2)
11999
return errors.New("Could not perform image diff")
120100
}
101+
glog.Info("Retrieving diffs")
102+
outputResults(diffs)
121103

104+
if save {
105+
dir, _ := os.Getwd()
106+
glog.Infof("Images were saved at %s as %s and %s", dir, imageMap[image1Arg].FSPath,
107+
imageMap[image2Arg].FSPath)
108+
109+
}
122110
return nil
123111
}
124112

main

12.7 MB
Binary file not shown.

0 commit comments

Comments
 (0)