diff --git a/depinject/debug.go b/depinject/debug.go index 820354426aa4..fc4d52c8d33f 100644 --- a/depinject/debug.go +++ b/depinject/debug.go @@ -79,9 +79,7 @@ func Logger(logger func(string)) DebugOption { }) } -const ( - debugContainerDot = "debug_container.dot" -) +const debugContainerDot = "debug_container.dot" // Debug is a default debug option which sends log output to stderr, dumps // the container in the graphviz DOT and SVG formats to debug_container.dot @@ -155,8 +153,7 @@ func deleteIfExists(filename string) { func DebugOptions(options ...DebugOption) DebugOption { return debugOption(func(c *debugConfig) error { for _, opt := range options { - err := opt.applyConfig(c) - if err != nil { + if err := opt.applyConfig(c); err != nil { return err } } diff --git a/depinject/inject.go b/depinject/inject.go index 1f28300f0c87..1f3194e37105 100644 --- a/depinject/inject.go +++ b/depinject/inject.go @@ -31,6 +31,9 @@ func inject(loc Location, debugOpt DebugOption, config Config, outputs ...interf return err } + // always generate graph on exit + defer cfg.generateGraph() + // debug cleanup defer func() { for _, f := range cfg.cleanup { @@ -38,33 +41,28 @@ func inject(loc Location, debugOpt DebugOption, config Config, outputs ...interf } }() - err = doInject(cfg, loc, debugOpt, config, outputs...) - if err != nil { + if err = doInject(cfg, loc, debugOpt, config, outputs...); err != nil { cfg.logf("Error: %v", err) if cfg.onError != nil { - err2 := cfg.onError.applyConfig(cfg) - if err2 != nil { + if err2 := cfg.onError.applyConfig(cfg); err2 != nil { return err2 } } + return err - } else { - if cfg.onSuccess != nil { - err2 := cfg.onSuccess.applyConfig(cfg) - if err2 != nil { - return err2 - } + } + + if cfg.onSuccess != nil { + if err2 := cfg.onSuccess.applyConfig(cfg); err2 != nil { + return err2 } - return nil } + return nil } func doInject(cfg *debugConfig, loc Location, debugOpt DebugOption, config Config, outputs ...interface{}) error { - defer cfg.generateGraph() // always generate graph on exit - if debugOpt != nil { - err := debugOpt.applyConfig(cfg) - if err != nil { + if err := debugOpt.applyConfig(cfg); err != nil { return err } }