@@ -183,20 +183,16 @@ func getRunPrefix(p *Package) string {
183183
184184// NewWerftReporter craetes a new werft compatible reporter
185185func NewWerftReporter () * WerftReporter {
186- return & WerftReporter {
187- ConsoleReporter : NewConsoleReporter (),
188- }
186+ return & WerftReporter {}
189187}
190188
191189// WerftReporter works like the console reporter but adds werft output
192190type WerftReporter struct {
193- * ConsoleReporter
191+ NoopReporter
194192}
195193
196194// BuildStarted is called when the build of a package is started by the user.
197195func (r * WerftReporter ) BuildStarted (pkg * Package , status map [* Package ]PackageBuildStatus ) {
198- r .ConsoleReporter .BuildStarted (pkg , status )
199-
200196 for p , s := range status {
201197 if s != PackageNotBuiltYet {
202198 continue
@@ -211,8 +207,6 @@ func (r *WerftReporter) BuildStarted(pkg *Package, status map[*Package]PackageBu
211207
212208// PackageBuildFinished is called when the package build has finished.
213209func (r * WerftReporter ) PackageBuildFinished (pkg * Package , err error ) {
214- r .ConsoleReporter .PackageBuildFinished (pkg , err )
215-
216210 if cfg , ok := pkg .Config .(DockerPkgConfig ); ok && pkg .Type == DockerPackage {
217211 for _ , img := range cfg .Image {
218212 fmt .Printf ("[docker|RESULT] %s\n " , img )
@@ -291,16 +285,14 @@ func (r *PackageReport) Error() string {
291285}
292286
293287type HTMLReporter struct {
294- delegate Reporter
295288 filename string
296289 reports map [string ]* PackageReport
297290 rootPackage * Package
298291 mu sync.RWMutex
299292}
300293
301- func NewHTMLReporter (del Reporter , filename string ) * HTMLReporter {
294+ func NewHTMLReporter (filename string ) * HTMLReporter {
302295 return & HTMLReporter {
303- delegate : del ,
304296 filename : filename ,
305297 reports : make (map [string ]* PackageReport ),
306298 }
@@ -331,16 +323,13 @@ func (r *HTMLReporter) getReport(pkg *Package) *PackageReport {
331323
332324func (r * HTMLReporter ) BuildStarted (pkg * Package , status map [* Package ]PackageBuildStatus ) {
333325 r .rootPackage = pkg
334- r .delegate .BuildStarted (pkg , status )
335326}
336327
337328func (r * HTMLReporter ) BuildFinished (pkg * Package , err error ) {
338- r .delegate .BuildFinished (pkg , err )
339329 r .Report ()
340330}
341331
342332func (r * HTMLReporter ) PackageBuildStarted (pkg * Package ) {
343- r .delegate .PackageBuildStarted (pkg )
344333 rep := r .getReport (pkg )
345334 rep .start = time .Now ()
346335 rep .status = PackageBuilding
@@ -349,11 +338,9 @@ func (r *HTMLReporter) PackageBuildStarted(pkg *Package) {
349338func (r * HTMLReporter ) PackageBuildLog (pkg * Package , isErr bool , buf []byte ) {
350339 report := r .getReport (pkg )
351340 report .logs .Write (buf )
352- r .delegate .PackageBuildLog (pkg , isErr , buf )
353341}
354342
355343func (r * HTMLReporter ) PackageBuildFinished (pkg * Package , err error ) {
356- r .delegate .PackageBuildFinished (pkg , err )
357344 rep := r .getReport (pkg )
358345 rep .duration = time .Since (rep .start )
359346 rep .status = PackageBuilt
@@ -432,3 +419,61 @@ func (r *HTMLReporter) Report() {
432419 log .WithError (err ).Fatal ("Can't render template" )
433420 }
434421}
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