From f02f8b3f67cd7fdca49db683aa7950ff637efdff Mon Sep 17 00:00:00 2001 From: xiangtieyao Date: Mon, 21 May 2018 20:46:55 +0800 Subject: [PATCH 1/2] Add validator support for pointer to struct. fix https://github.com/koding/multiconfig/issues/71 --- validator.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/validator.go b/validator.go index 67d04e2..d700825 100644 --- a/validator.go +++ b/validator.go @@ -58,6 +58,17 @@ func (e *RequiredValidator) processField(fieldName string, field *structs.Field) return err } } + case reflect.Ptr: + if field.IsExported() && reflect.ValueOf(field.Value()).Elem().Kind() == reflect.Struct { + fieldName += "." + for _, f := range field.Fields() { + if err := e.processField(fieldName, f); err != nil { + return err + } + } + return nil + } + fallthrough default: val := field.Tag(e.TagName) if val != e.TagValue { From 8604e4b72c12d264ae7baeefa53101542743693b Mon Sep 17 00:00:00 2001 From: xiangtieyao Date: Thu, 7 Jun 2018 00:58:31 +0800 Subject: [PATCH 2/2] Remove FlagLoader from DefaultLoader, because it's unusable, refer to: https://github.com/koding/multiconfig/issues/75 --- multiconfig.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/multiconfig.go b/multiconfig.go index 0070344..3fa5df2 100644 --- a/multiconfig.go +++ b/multiconfig.go @@ -52,9 +52,11 @@ func NewWithPath(path string) *DefaultLoader { } e := &EnvironmentLoader{} - f := &FlagLoader{} + // FlagLoader is unusable right now, refer to: https://github.com/koding/multiconfig/issues/75 + // f := &FlagLoader{} - loaders = append(loaders, e, f) + // loaders = append(loaders, e, f) + loaders = append(loaders, e) loader := MultiLoader(loaders...) d := &DefaultLoader{}