@@ -226,8 +226,9 @@ func ZipArchive(
226
226
if err != nil {
227
227
return fmt .Errorf ("error creating .zip header for components/ directory: %w" , err )
228
228
}
229
+
229
230
// iterate over components
230
- for dirName , units := range compDirs {
231
+ for dirName , comp := range componentResults {
231
232
_ , err := zw .CreateHeader (& zip.FileHeader {
232
233
Name : fmt .Sprintf ("components/%s/" , dirName ),
233
234
Method : zip .Deflate ,
@@ -236,66 +237,65 @@ func ZipArchive(
236
237
if err != nil {
237
238
return fmt .Errorf ("error creating .zip header for component directory: %w" , err )
238
239
}
239
- // create component diags
240
- if comp , ok := componentResults [dirName ]; ok {
241
- // check for component-level errors
242
- if comp .Err != nil {
243
- err = writeErrorResult (zw , fmt .Sprintf ("components/%s/error.txt" , dirName ), comp .Err .Error ())
240
+ if comp .Err != nil {
241
+ err = writeErrorResult (zw , fmt .Sprintf ("components/%s/error.txt" , dirName ), comp .Err .Error ())
242
+ if err != nil {
243
+ return fmt .Errorf ("error while writing error result for component %s: %w" , comp .ComponentID , err )
244
+ }
245
+ } else {
246
+ for _ , res := range comp .Results {
247
+
248
+ filePath := fmt .Sprintf ("components/%s/%s" , dirName , res .Filename )
249
+ resFileWriter , err := zw .CreateHeader (& zip.FileHeader {
250
+ Name : filePath ,
251
+ Method : zip .Deflate ,
252
+ Modified : ts ,
253
+ })
244
254
if err != nil {
245
- return fmt .Errorf ("error while writing error result for component %s: %w" , comp . ComponentID , err )
255
+ return fmt .Errorf ("error creating .zip header for %s: %w" , res . Filename , err )
246
256
}
247
- } else {
248
- for _ , res := range comp .Results {
249
-
250
- filePath := fmt .Sprintf ("components/%s/%s" , dirName , res .Filename )
251
- resFileWriter , err := zw .CreateHeader (& zip.FileHeader {
252
- Name : filePath ,
253
- Method : zip .Deflate ,
254
- Modified : ts ,
255
- })
256
- if err != nil {
257
- return fmt .Errorf ("error creating .zip header for %s: %w" , res .Filename , err )
258
- }
259
- err = writeRedacted (errOut , resFileWriter , filePath , res )
260
- if err != nil {
261
- return fmt .Errorf ("error writing %s in zip file: %w" , res .Filename , err )
262
- }
257
+ err = writeRedacted (errOut , resFileWriter , filePath , res )
258
+ if err != nil {
259
+ return fmt .Errorf ("error writing %s in zip file: %w" , res .Filename , err )
263
260
}
264
261
}
265
-
266
262
}
267
263
// create unit diags
268
- for _ , ud := range units {
269
- unitDir := strings .ReplaceAll (strings .TrimPrefix (ud .UnitID , ud .ComponentID + "-" ), "/" , "-" )
270
- _ , err := zw .CreateHeader (& zip.FileHeader {
271
- Name : fmt .Sprintf ("components/%s/%s/" , dirName , unitDir ),
272
- Method : zip .Deflate ,
273
- Modified : ts ,
274
- })
275
- if err != nil {
276
- return fmt .Errorf ("error creating .zip header for unit directory: %w" , err )
277
- }
278
- // check for unit-level errors
279
- if ud .Err != nil {
280
- err = writeErrorResult (zw , fmt .Sprintf ("components/%s/%s/error.txt" , dirName , unitDir ), ud .Err .Error ())
281
- if err != nil {
282
- return fmt .Errorf ("error while writing error result for unit %s: %w" , ud .UnitID , err )
283
- }
284
- continue
285
- }
286
- for _ , fr := range ud .Results {
287
- filePath := fmt .Sprintf ("components/%s/%s/%s" , dirName , unitDir , fr .Filename )
288
- w , err := zw .CreateHeader (& zip.FileHeader {
289
- Name : filePath ,
264
+ if units , ok := compDirs [dirName ]; ok {
265
+ // check for component-level errors
266
+ // create unit diags
267
+ for _ , ud := range units {
268
+ unitDir := strings .ReplaceAll (strings .TrimPrefix (ud .UnitID , ud .ComponentID + "-" ), "/" , "-" )
269
+ _ , err := zw .CreateHeader (& zip.FileHeader {
270
+ Name : fmt .Sprintf ("components/%s/%s/" , dirName , unitDir ),
290
271
Method : zip .Deflate ,
291
- Modified : fr . Generated ,
272
+ Modified : ts ,
292
273
})
293
274
if err != nil {
294
- return err
275
+ return fmt . Errorf ( "error creating .zip header for unit directory: %w" , err )
295
276
}
296
- err = writeRedacted (errOut , w , filePath , fr )
297
- if err != nil {
298
- return err
277
+ // check for unit-level errors
278
+ if ud .Err != nil {
279
+ err = writeErrorResult (zw , fmt .Sprintf ("components/%s/%s/error.txt" , dirName , unitDir ), ud .Err .Error ())
280
+ if err != nil {
281
+ return fmt .Errorf ("error while writing error result for unit %s: %w" , ud .UnitID , err )
282
+ }
283
+ continue
284
+ }
285
+ for _ , fr := range ud .Results {
286
+ filePath := fmt .Sprintf ("components/%s/%s/%s" , dirName , unitDir , fr .Filename )
287
+ w , err := zw .CreateHeader (& zip.FileHeader {
288
+ Name : filePath ,
289
+ Method : zip .Deflate ,
290
+ Modified : fr .Generated ,
291
+ })
292
+ if err != nil {
293
+ return err
294
+ }
295
+ err = writeRedacted (errOut , w , filePath , fr )
296
+ if err != nil {
297
+ return err
298
+ }
299
299
}
300
300
}
301
301
}
0 commit comments