aboutsummaryrefslogtreecommitdiff
path: root/factory
diff options
context:
space:
mode:
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(