diff options
Diffstat (limited to 'utils/env/parser.go')
| -rw-r--r-- | utils/env/parser.go | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/utils/env/parser.go b/utils/env/parser.go new file mode 100644 index 0000000..c1fdb53 --- /dev/null +++ b/utils/env/parser.go @@ -0,0 +1,28 @@ +package env + +func Parse(config any) error { + elem, t, err := validateConfigInput(config) + if err != nil { + return err + } + + for i := range elem.NumField() { + field := elem.Field(i) + fieldType := t.Field(i) + + if !field.CanSet() { + continue + } + + envKey := fieldType.Tag.Get("env") + defaultVal := fieldType.Tag.Get("default") + + if envKey == "" { + continue + } + + setFieldFromEnv(field, envKey, defaultVal) + } + + return nil +} |
