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

Commit 8d76928

Browse files
authored
Merge pull request #69 from aaron-prindle/dedup-analyzeimage-diffimage
Removed some duplicated code in analyzeimages and diffimages
2 parents 6b96f8a + d4df09c commit 8d76928

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
@@ -75,36 +75,36 @@ func analyzeImage(imageArg string, analyzerArgs []string) error {
7575
Source: imageArg,
7676
Client: cli,
7777
}
78-
7978
image, err := ip.GetImage()
79+
80+
if !save {
81+
defer cleanupImage(image)
82+
}
8083
if err != nil {
8184
glog.Error(err.Error())
82-
cleanupImage(image)
8385
return errors.New("Could not perform image analysis")
8486
}
8587
analyzeTypes, err := differs.GetAnalyzers(analyzerArgs)
8688
if err != nil {
8789
glog.Error(err.Error())
88-
cleanupImage(image)
8990
return errors.New("Could not perform image analysis")
9091
}
9192

9293
req := differs.SingleRequest{image, analyzeTypes}
93-
if analyses, err := req.GetAnalysis(); err == nil {
94-
glog.Info("Retrieving analyses")
95-
outputResults(analyses)
96-
if !save {
97-
cleanupImage(image)
98-
} else {
99-
dir, _ := os.Getwd()
100-
glog.Infof("Image was saved at %s as %s", dir, image.FSPath)
101-
}
102-
} else {
94+
analyses, err := req.GetAnalysis()
95+
if err != nil {
10396
glog.Error(err.Error())
104-
cleanupImage(image)
10597
return errors.New("Could not perform image analysis")
10698
}
10799

100+
glog.Info("Retrieving analyses")
101+
outputResults(analyses)
102+
103+
if save {
104+
dir, _ := os.Getwd()
105+
glog.Infof("Image was saved at %s as %s", dir, image.FSPath)
106+
}
107+
108108
return nil
109109
}
110110

cmd/diff.go

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

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

80-
var image1, image2 utils.Image
81-
go func() {
82-
defer wg.Done()
83-
ip := utils.ImagePrepper{
84-
Source: image1Arg,
85-
Client: cli,
86-
}
87-
image1, err = ip.GetImage()
88-
if err != nil {
89-
glog.Error(err.Error())
90-
}
91-
}()
92-
93-
go func() {
94-
defer wg.Done()
95-
ip := utils.ImagePrepper{
96-
Source: image2Arg,
97-
Client: cli,
98-
}
99-
image2, err = ip.GetImage()
100-
if err != nil {
101-
glog.Error(err.Error())
102-
}
103-
}()
80+
imageMap := map[string]*utils.Image{
81+
image1Arg: {},
82+
image2Arg: {},
83+
}
84+
for imageArg := range imageMap {
85+
go func(imageName string, imageMap map[string]*utils.Image) {
86+
defer wg.Done()
87+
ip := utils.ImagePrepper{
88+
Source: imageName,
89+
Client: cli,
90+
}
91+
image, err := ip.GetImage()
92+
imageMap[imageName] = &image
93+
if err != nil {
94+
glog.Error(err.Error())
95+
}
96+
}(imageArg, imageMap)
97+
}
10498
wg.Wait()
105-
if err != nil {
106-
cleanupImage(image1)
107-
cleanupImage(image2)
108-
return errors.New("Could not perform image diff")
99+
100+
if !save {
101+
defer cleanupImage(*imageMap[image1Arg])
102+
defer cleanupImage(*imageMap[image2Arg])
109103
}
110104

111105
diffTypes, err := differs.GetAnalyzers(diffArgs)
112106
if err != nil {
113107
glog.Error(err.Error())
114-
cleanupImage(image1)
115-
cleanupImage(image2)
116108
return errors.New("Could not perform image diff")
117109
}
118110

119-
req := differs.DiffRequest{image1, image2, diffTypes}
120-
if diffs, err := req.GetDiff(); err == nil {
121-
glog.Info("Retrieving diffs")
122-
outputResults(diffs)
123-
if !save {
124-
cleanupImage(image1)
125-
cleanupImage(image2)
126-
127-
} else {
128-
dir, _ := os.Getwd()
129-
glog.Infof("Images were saved at %s as %s and %s", dir, image1.FSPath, image2.FSPath)
130-
}
131-
} else {
111+
req := differs.DiffRequest{*imageMap[image1Arg], *imageMap[image2Arg], diffTypes}
112+
diffs, err := req.GetDiff()
113+
if err != nil {
132114
glog.Error(err.Error())
133-
cleanupImage(image1)
134-
cleanupImage(image2)
135115
return errors.New("Could not perform image diff")
136116
}
117+
glog.Info("Retrieving diffs")
118+
outputResults(diffs)
137119

120+
if save {
121+
dir, _ := os.Getwd()
122+
glog.Infof("Images were saved at %s as %s and %s", dir, imageMap[image1Arg].FSPath,
123+
imageMap[image2Arg].FSPath)
124+
125+
}
138126
return nil
139127
}
140128

main

12.7 MB
Binary file not shown.

0 commit comments

Comments
 (0)