From f4e46d41fc09a075c4efdac4c6bf012f2f1a1e82 Mon Sep 17 00:00:00 2001
From: Jan Semmelink <jan@uafrica.com>
Date: Wed, 3 Nov 2021 10:36:11 +0200
Subject: [PATCH] Update config

---
 config/struct.go | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/config/struct.go b/config/struct.go
index 90d0b30..f52c44b 100644
--- a/config/struct.go
+++ b/config/struct.go
@@ -24,7 +24,15 @@ func Load(prefix string, configPtr interface{}) error {
 		return errors.Errorf("%T is not &struct", configPtr)
 	}
 	v := reflect.ValueOf(configPtr)
-	return load(prefix, t.Elem(), v.Elem())
+	if err := load(prefix, t.Elem(), v.Elem()); err != nil {
+		return errors.Wrapf(err, "failed to load config with prefix %s", prefix)
+	}
+	if validator, ok := configPtr.(Validator); ok {
+		if err := validator.Validate(); err != nil {
+			return errors.Wrapf(err, "invalid config with prefix %s", prefix)
+		}
+	}
+	return nil
 }
 
 type nameValue struct {
-- 
GitLab