From aed687eaa161da939b9052bf1b13371b4f1cdc32 Mon Sep 17 00:00:00 2001 From: Evans Mungai Date: Wed, 22 Oct 2025 19:18:32 +0100 Subject: [PATCH] Add config options to NewConfiguration() Signed-off-by: Evans Mungai --- pkg/action/action.go | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/pkg/action/action.go b/pkg/action/action.go index 04afdb133..1d16ba7b8 100644 --- a/pkg/action/action.go +++ b/pkg/action/action.go @@ -117,9 +117,26 @@ type Configuration struct { logging.LogHolder } -func NewConfiguration() *Configuration { +type ConfigurationOption func(c *Configuration) + +// Override the default logging handler +// If unspecified, the default logger will be used +func ConfigurationSetLogger(h slog.Handler) ConfigurationOption { + return func(c *Configuration) { + c.SetLogger(h) + } +} + +func NewConfiguration(options ...ConfigurationOption) *Configuration { c := &Configuration{} - c.SetLogger(slog.Default().Handler()) + for _, o := range options { + o(c) + } + + if c.Logger() == nil { + c.SetLogger(slog.Default().Handler()) + } + return c }