@@ -61,64 +61,52 @@ func diffImages(image1Arg, image2Arg string, diffArgs []string) error {
61
61
62
62
glog .Infof ("Starting diff on images %s and %s, using differs: %s" , image1Arg , image2Arg , diffArgs )
63
63
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
+ }
88
82
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 ] )
93
87
}
94
88
95
89
diffTypes , err := differs .GetAnalyzers (diffArgs )
96
90
if err != nil {
97
91
glog .Error (err .Error ())
98
- cleanupImage (image1 )
99
- cleanupImage (image2 )
100
92
return errors .New ("Could not perform image diff" )
101
93
}
102
94
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 {
116
98
glog .Error (err .Error ())
117
- cleanupImage (image1 )
118
- cleanupImage (image2 )
119
99
return errors .New ("Could not perform image diff" )
120
100
}
101
+ glog .Info ("Retrieving diffs" )
102
+ outputResults (diffs )
121
103
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
+ }
122
110
return nil
123
111
}
124
112
0 commit comments