aboutsummaryrefslogtreecommitdiff
path: root/factory
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2024-12-19 09:57:42 +0000
committerdakkar <dakkar@thenautilus.net>2024-12-19 09:57:42 +0000
commit3132bce2a8166e3f9818059af4de8d69a09bbf12 (patch)
treee92a1cbb61dba41a4a2dcd99ed72babb480e8ccf /factory
parentminimal example (diff)
downloadgo-example-3132bce2a8166e3f9818059af4de8d69a09bbf12.tar.gz
go-example-3132bce2a8166e3f9818059af4de8d69a09bbf12.tar.bz2
go-example-3132bce2a8166e3f9818059af4de8d69a09bbf12.zip
move more code in the factory
Diffstat (limited to 'factory')
-rw-r--r--factory/factory.go22
1 files changed, 22 insertions, 0 deletions
diff --git a/factory/factory.go b/factory/factory.go
index ae84911..2acac39 100644
--- a/factory/factory.go
+++ b/factory/factory.go
@@ -1,9 +1,13 @@
package factory
import (
+ "fmt"
+ "os"
+
"github.com/rs/zerolog"
"www.thenautilus.net/cgit/go-example/config"
+ "www.thenautilus.net/cgit/go-example/logging"
"www.thenautilus.net/cgit/go-example/something"
)
@@ -21,6 +25,24 @@ func New(logger zerolog.Logger, config *config.MainConfig) Factory {
}
}
+func NewFromConfig() Factory {
+ config, err := config.GetMainConfig()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "%s\n", err)
+ os.Exit(1)
+ }
+
+ log := logging.Logger(config.Logger)
+
+ log.Info().Object("config", &config).Msg("configuration")
+
+ return New(log, &config)
+}
+
+func (f *Factory) Logger() zerolog.Logger {
+ return f.logger
+}
+
func (f *Factory) Something() *something.Something {
if f.something == nil {
something := something.New(