From fc90c37f381c6720c585d0dbc8068c2d4b2eae0e Mon Sep 17 00:00:00 2001 From: Pascal Mathis Date: Wed, 29 May 2019 23:59:50 +0200 Subject: [PATCH] core: Add plugin option to always force verbose output --- nagocheck/plugin.go | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/nagocheck/plugin.go b/nagocheck/plugin.go index 1e3833d..bbf37d9 100644 --- a/nagocheck/plugin.go +++ b/nagocheck/plugin.go @@ -47,6 +47,7 @@ type basePlugin struct { module Module useDefaultFlags bool useDefaultThresholds bool + forceVerboseOutput bool verboseOutput bool warningThreshold nagopher.OptionalBounds @@ -60,6 +61,7 @@ func NewPlugin(name string, options ...PluginOpt) Plugin { description: name, useDefaultFlags: true, useDefaultThresholds: true, + forceVerboseOutput: false, } for _, option := range options { @@ -76,6 +78,13 @@ func PluginDescription(description string) PluginOpt { } } +// PluginForceVerbose is a functional option for NewPlugin(), which toggles forcing verbose check output +func PluginForceVerbose(enabled bool) PluginOpt { + return func(p *basePlugin) { + p.forceVerboseOutput = enabled + } +} + // PluginDefaultFlags is a functional option for NewPlugin(), which toggles the definition of default flags func PluginDefaultFlags(enabled bool) PluginOpt { return func(p *basePlugin) { @@ -92,8 +101,10 @@ func PluginDefaultThresholds(enabled bool) PluginOpt { func (p *basePlugin) defineDefaultFlags(node KingpinNode) { if p.useDefaultFlags { - node.Flag("verbose", "Enable verbose plugin output."). - Short('v').BoolVar(&p.verboseOutput) + if !p.verboseOutput { + node.Flag("verbose", "Enable verbose plugin output."). + Short('v').BoolVar(&p.verboseOutput) + } } if p.useDefaultThresholds { @@ -121,6 +132,10 @@ func (p *basePlugin) setModule(module Module) { } func (p *basePlugin) VerboseOutput() bool { + if p.forceVerboseOutput { + return true + } + return p.verboseOutput }