@@ -183,20 +183,16 @@ func getRunPrefix(p *Package) string {
183
183
184
184
// NewWerftReporter craetes a new werft compatible reporter
185
185
func NewWerftReporter () * WerftReporter {
186
- return & WerftReporter {
187
- ConsoleReporter : NewConsoleReporter (),
188
- }
186
+ return & WerftReporter {}
189
187
}
190
188
191
189
// WerftReporter works like the console reporter but adds werft output
192
190
type WerftReporter struct {
193
- * ConsoleReporter
191
+ NoopReporter
194
192
}
195
193
196
194
// BuildStarted is called when the build of a package is started by the user.
197
195
func (r * WerftReporter ) BuildStarted (pkg * Package , status map [* Package ]PackageBuildStatus ) {
198
- r .ConsoleReporter .BuildStarted (pkg , status )
199
-
200
196
for p , s := range status {
201
197
if s != PackageNotBuiltYet {
202
198
continue
@@ -211,8 +207,6 @@ func (r *WerftReporter) BuildStarted(pkg *Package, status map[*Package]PackageBu
211
207
212
208
// PackageBuildFinished is called when the package build has finished.
213
209
func (r * WerftReporter ) PackageBuildFinished (pkg * Package , err error ) {
214
- r .ConsoleReporter .PackageBuildFinished (pkg , err )
215
-
216
210
if cfg , ok := pkg .Config .(DockerPkgConfig ); ok && pkg .Type == DockerPackage {
217
211
for _ , img := range cfg .Image {
218
212
fmt .Printf ("[docker|RESULT] %s\n " , img )
@@ -291,16 +285,14 @@ func (r *PackageReport) Error() string {
291
285
}
292
286
293
287
type HTMLReporter struct {
294
- delegate Reporter
295
288
filename string
296
289
reports map [string ]* PackageReport
297
290
rootPackage * Package
298
291
mu sync.RWMutex
299
292
}
300
293
301
- func NewHTMLReporter (del Reporter , filename string ) * HTMLReporter {
294
+ func NewHTMLReporter (filename string ) * HTMLReporter {
302
295
return & HTMLReporter {
303
- delegate : del ,
304
296
filename : filename ,
305
297
reports : make (map [string ]* PackageReport ),
306
298
}
@@ -331,16 +323,13 @@ func (r *HTMLReporter) getReport(pkg *Package) *PackageReport {
331
323
332
324
func (r * HTMLReporter ) BuildStarted (pkg * Package , status map [* Package ]PackageBuildStatus ) {
333
325
r .rootPackage = pkg
334
- r .delegate .BuildStarted (pkg , status )
335
326
}
336
327
337
328
func (r * HTMLReporter ) BuildFinished (pkg * Package , err error ) {
338
- r .delegate .BuildFinished (pkg , err )
339
329
r .Report ()
340
330
}
341
331
342
332
func (r * HTMLReporter ) PackageBuildStarted (pkg * Package ) {
343
- r .delegate .PackageBuildStarted (pkg )
344
333
rep := r .getReport (pkg )
345
334
rep .start = time .Now ()
346
335
rep .status = PackageBuilding
@@ -349,11 +338,9 @@ func (r *HTMLReporter) PackageBuildStarted(pkg *Package) {
349
338
func (r * HTMLReporter ) PackageBuildLog (pkg * Package , isErr bool , buf []byte ) {
350
339
report := r .getReport (pkg )
351
340
report .logs .Write (buf )
352
- r .delegate .PackageBuildLog (pkg , isErr , buf )
353
341
}
354
342
355
343
func (r * HTMLReporter ) PackageBuildFinished (pkg * Package , err error ) {
356
- r .delegate .PackageBuildFinished (pkg , err )
357
344
rep := r .getReport (pkg )
358
345
rep .duration = time .Since (rep .start )
359
346
rep .status = PackageBuilt
@@ -432,3 +419,61 @@ func (r *HTMLReporter) Report() {
432
419
log .WithError (err ).Fatal ("Can't render template" )
433
420
}
434
421
}
422
+
423
+ type CompositeReporter []Reporter
424
+
425
+ // BuildFinished implements Reporter
426
+ func (cr CompositeReporter ) BuildFinished (pkg * Package , err error ) {
427
+ for _ , r := range cr {
428
+ r .BuildFinished (pkg , err )
429
+ }
430
+ }
431
+
432
+ // BuildStarted implements Reporter
433
+ func (cr CompositeReporter ) BuildStarted (pkg * Package , status map [* Package ]PackageBuildStatus ) {
434
+ for _ , r := range cr {
435
+ r .BuildStarted (pkg , status )
436
+ }
437
+ }
438
+
439
+ // PackageBuildFinished implements Reporter
440
+ func (cr CompositeReporter ) PackageBuildFinished (pkg * Package , err error ) {
441
+ for _ , r := range cr {
442
+ r .PackageBuildFinished (pkg , err )
443
+ }
444
+ }
445
+
446
+ // PackageBuildLog implements Reporter
447
+ func (cr CompositeReporter ) PackageBuildLog (pkg * Package , isErr bool , buf []byte ) {
448
+ for _ , r := range cr {
449
+ r .PackageBuildLog (pkg , isErr , buf )
450
+ }
451
+ }
452
+
453
+ // PackageBuildStarted implements Reporter
454
+ func (cr CompositeReporter ) PackageBuildStarted (pkg * Package ) {
455
+ for _ , r := range cr {
456
+ r .PackageBuildStarted (pkg )
457
+ }
458
+ }
459
+
460
+ var _ Reporter = CompositeReporter {}
461
+
462
+ type NoopReporter struct {}
463
+
464
+ // BuildFinished implements Reporter
465
+ func (* NoopReporter ) BuildFinished (pkg * Package , err error ) {}
466
+
467
+ // BuildStarted implements Reporter
468
+ func (* NoopReporter ) BuildStarted (pkg * Package , status map [* Package ]PackageBuildStatus ) {}
469
+
470
+ // PackageBuildFinished implements Reporter
471
+ func (* NoopReporter ) PackageBuildFinished (pkg * Package , err error ) {}
472
+
473
+ // PackageBuildLog implements Reporter
474
+ func (* NoopReporter ) PackageBuildLog (pkg * Package , isErr bool , buf []byte ) {}
475
+
476
+ // PackageBuildStarted implements Reporter
477
+ func (* NoopReporter ) PackageBuildStarted (pkg * Package ) {}
478
+
479
+ var _ Reporter = ((* NoopReporter )(nil ))
0 commit comments